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>