[ntp:questions] Strange time instability (ntpd 4.2.2p3)

linux at horizon.com linux at horizon.com
Fri Oct 27 11:07:42 UTC 2006

Just to follow up on my debugging...

After playing with a whole pile of options and configurations, I
discovered that it has something to do with my hack of NTP_MINPOLL to 2.
If I set the PPS source's minpoll to 4 or more, everything works fine.
If I set it to 3 or less, I get the bizarre "loopstats offset != peerstats
offset" behavior.

After some playing with debugging, it appears that the Linux kernel
adjtimex code doesn't like ntv.constant < 0 and returns -1/EINVAL.
But ntpd doesn't notice the error (since it's not TIME_ERROR)
and merrily proceeds on its way.

Despite the error, the kernel copies its current values into the
passed-in ntptimeval, and that's what is logged in loopstats.

I note that the top of page 17 of "Unix kernel modifications for
precision time synchronization" (UDel EE department report 94-10-1)
specifically anticipates a negative return value, and it's also very firm
Unix tradition, so I'd like to suggest that failure to report this error
(at least by exiting) is a bug in ntpd that needs fixing.


More information about the questions mailing list