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>
index | next in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901092241.RAA78913>
