[ntp:questions] Re: ntpd and leap seconds on Windows

Martin Burnicki martin.burnicki at meinberg.de
Fri Oct 14 14:05:00 UTC 2005


Michael,

Arthur.Porkchop at exemail.com.au wrote:

> Thanks for the detailed reply Martin.
> It sounds as if MS's W32Time/TimeServ actually does a slightly better
> job.
> According to
>     http://support.microsoft.com/kb/q246145/
> W32Time is aware of leap seconds and will try to step the time shortly
> after by polling the server, but with a 15 minute spread so that  the
> NTP server doesn't get flooded.

I've also tested w32time (from W2kSP4) now and indeed it does a much better
job in this case:

yyyy-mm-dd hh:mm:ss.msec  dt1[ms]   dt2[ms]    dt1-dt2  tick (corr) [hns]
--------------------------------------------------------------------------
2005-12-31 23:59:57.289: 1000.0000  999.9961   +0.0039  156250 (+0) 
2005-12-31 23:59:58.289: 1000.0000  999.9977   +0.0023  156250 (+0) 
2005-12-31 23:59:59.289: 1000.0000  999.9977   +0.0023  156250 (+0) 
2006-01-01 00:00:00.289: 1000.0000  999.9943   +0.0057  156250 (+0) 
2006-01-01 00:00:01.148:  859.3750  999.9972 -140.6222  78125 (-78125) ><
2006-01-01 00:00:01.648:  500.0000  999.9942 -499.9942  78125 (-78125) ><
2006-01-01 00:00:02.273:  625.0000  999.9968 -374.9968  156250 (+0) ><
2006-01-01 00:00:03.273: 1000.0000  999.9954   +0.0046  156250 (+0) 
2006-01-01 00:00:04.273: 1000.0000  999.9986   +0.0014  156250 (+0) 
2006-01-01 00:00:05.273: 1000.0000  999.9985   +0.0015  156250 (+0) 
2006-01-01 00:00:06.273: 1000.0000  999.9949   +0.0051  156250 (+0) 

This has been recorded using a simple program which does the following in a
loop:
  - read the system time 
  - read the performance counter
  - read current tick adjustment
  - process the values 
  - sleep for 1000 milliseconds

Output contains the system date and time (the time zone has been set to UTC
here), then dt1 which is the difference between the last 2 readings of the
system time, then dt2 which is the difference between the last 2 readings
of the performance counter, and finally the current tick adjustment value
and the difference from the standard tick adjustment value.

We can see that immediately after the point of leap second insertion w32time
slews the system clock over 3 or 4 seconds to account for the offset.

I could also see, however, that normally the tickadjustment value is set to
its default value (156250, i.e. 15.6250 millisecond timer tick interval)
all the time which means that w32time does not discipline the system time
continuously like ntpd does.

Martin
-- 
Martin Burnicki

Meinberg Funkuhren
Bad Pyrmont
Germany




More information about the questions mailing list