Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 09 Jan 1999 17:41:51 -0500
From:      "Louis A. Mamakos" <louie@TransSys.COM>
To:        current@FreeBSD.ORG
Subject:   need a major device number..
Message-ID:  <199901092241.RAA78913@whizzo.transsys.com>

next in thread | raw e-mail | index | archive | help

I need a cdev major device number for a device driver I've written for a 
Datum bc635PCI time and frequency processor.  It's part of some work that I'm
doing to develop an infrastructure to precisely timestamp network traffic
on a FreeBSD 3.0 system.  The goal is to measure unidirectional network
latency to sub-100 microsecond accuracy (hopefully closer to 40 or 50
microseconds) between pairs of systems with these boards and an 
external GPS receiver.

This is part of a larger project that I've been working on at work (UUNET),
and will be contributing to the FreeBSD project if they want it.

As an aside, one of the diagnostic features of the driver is to measure
interrupt service time latency in the FreeBSD kernel.  I put this code
in the driver as an attempt to characterize the "noise floor" of the
overall system, as I'm timestamping inbound network traffic in response
to an interrupt from the network adapter.

The Datum bc635PCI board can be programmed to generate an interrupt
at a preset time.  You can then subsequently read the board's idea of
the time to a 100ns resolution, needing only 3 PCI bus cycles to grab
the time.  The time is latched on one register reference, and then two
32 bit registers are read to fetch the latched time.  The interrupt
service routine in the driver notes the time, and maintains
a histogram of service times.   The driver does this one or twice a 
second, dependong how it's configured by the driver.

Here's some data from a 300MHz P-II based system that been up almost
24 days:

  lower latency  number    upper latency
      bound      samples        bound
    ----------  --------    ----------
       6us <=        9 <        7us
       7us <=  1478296 <        8us
       8us <=   321601 <        9us
       9us <=    58115 <       10us
      10us <=   122543 <       11us
      11us <=    52189 <       12us
      12us <=    19390 <       13us
      13us <=     6461 <       14us
      14us <=     2266 <       15us
      15us <=     1731 <       16us
      16us <=     1398 <       17us
      17us <=      727 <       18us
      18us <=      368 <       19us
      19us <=      279 <       20us
      20us <=     1405 <       22us
      22us <=      320 <       24us
      24us <=      274 <       28us
      28us <=      106 <       30us
      30us <=       89 <       32us
      32us <=       92 <       35us
      35us <=      229 <       50us
      50us <=      189 <       75us
      75us <=       98 <      100us
     100us <=       86 <      250us
     250us <=       41 <      500us
     500us <=       21 <     1000us
    2000us <=        1 <     5000us

louie



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901092241.RAA78913>