[ntp:questions] Re: ntpd transmit timestamp precision

David Woolley david at djwhome.demon.co.uk
Sat Feb 18 10:29:02 UTC 2006


In article <dt5jnh$aee$1 at dewey.udel.edu>,
David L. Mills <mills at udel.edu> wrote:

> microseconds/nanoseconds. Apparently some systems (Linux?) don't even 
> bother to interpolate the tick, so the precision measured by ntpd is 

Linux certainly interpolates the tick.  The classic example of a system
that doesn't is the Windows NT family (but the NTPD code accesses the
hardware directly to do the interpolation itself, but as it uses the TSC
counter, not the hardware clock, it is vulnerable to scheduling delays).
Ordinary applications only see the interrupt resolution.

I believe that SCO Unix (Openserver), at least in some version, also doesn't.

Actually there is rather a lot of code in Linux to do the interpolation as
it has to cope with both TSC machines and non-TSC machines and various 
bugs in the ASICs that implement the CTC, and that is just for i86.  See:

linux-2.4.26/arch/i386/kernel/time.c, in particular do_gettimeoffset().

For NT, the hack within NTPD 4.2.0 is in:

ntp-4.2.0/ports/winnt/ntpd/nt_clockstuff.c

although somewhat worrying, but consistent with what I've seen, it says:

 * I've also found that on a loaded system the execution of the APC can be
 * delayed, leading to errors of upto 10ms.  There is no easy fix to this,
 
Also worrying is that:

ntp-4.2.0/ports/winnt/libntp/util_clockstuff.c

has comments saying it is also doing a TSC correction, but has no code to
actually do it.

> I have no machines left that have dirty rotten hardware or dirty rotten 
> kernels, so I can't calibrate how good or bad it works with such stuff.

Your headers say otherwise:

> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
                                       ^^^^^^^^^^^^^^




More information about the questions mailing list