Subject: Re: PPS signals and all that jazz
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-kern
Date: 03/27/1998 10:58:23
Jason Thorpe <thorpej@nas.nasa.gov> writes:
Date: Fri, 27 Mar 1998 10:23:22 -0800

> Jonathan Stone <jonathan@DSG.Stanford.EDU> wrote:
>
> > See
> > 
> > http://www.eecis.udel.edu/~ntp/database/html_xntp3-5.90/ldisc.html
> > 
> > As I said to Jason in a private email, the numbers for the 100MHz
>
>...and as I told you in a private reply to your private mail, those
>numbers have nothing to do with the assertion you were making, which
>was that "FreeBSD's low-level interrupt handing is faster than NetBSD's".

Wrong. Those numbers have *everything* to do with it.  The name of the
web page is a bit misleading.  It describes both the old-style
line-disciplines which have confused so many other people, and the
simpler, TIODCDTIMESTAMP mechanism identical in spirit and similar in
implemenation to the one I posted.

Jason, you claimed in private email that the UDEL numbers were
irrelevant because they were measurements of line-discipline latency.
That's nonsense. To quote David L. Mills:

	TIOCDCDTIMESTAMP timestamping

        On FreeBSD 2.2 and later systems the TIOCDCDTIMESTAMP ioctl is
	used to read the timestamp when the DCD serial go active. To
        use this the PPS signal must be tied to the serial port DCD
        signal through the appropriate level converters and pulse
        stretch circuitry if necessary. This enhances the accuracy of
        the driver to a few microseconds.  Using FreeBSD 2.2 the
        measured delay between activation of the PPS signal and the
        time the timestamp is made on a 66MHz 486DX2 is 19us and on a
        100MHz Pentium is 6us. The driver does NOT compensate for this.

i.e., the quoted numbers are from the PPS signal firing, to the sio
handler taking a timestamp.  No line discipline is involved.

And -- as I said -- the cited those numbers are faster than
similarinterrupt-latency masures i've taken on NetBSD with *faster*
hardware on a slightly shorter path.

If somebody has better numbers for NetBSD 1.2E through 1.3_ALPHA, I'd
sure like to be able to duplicate them, I could have taken an entire
summer off.