[ntp:questions] Time reset
David L. Mills
mills at udel.edu
Tue May 6 03:40:55 UTC 2008
Evandro,
You will see the following message appearing in the archives about once
per year. It may be time to repeat it again.
The major assumption in the NTP design is that the operating system
determines whether to accept a backward step or not. The original
nanokernel design now used in Linux, FreeBSD and Tru64 forced monotonic
forwared progress, although at reduced rate, unless the backward step is
more than two seconds. In that case the assumption is a stuck bit in the
clock counter or some other serious hardware flaw. Occasions like this
are not common, but they are not rare either. The most common case is
when starting the daemon the RTC time is a second or more from NTP time.
Various generations of kernelmongers have cheerfully ignored that
provision and substituted their own. The only thing NTP could do is to
ignore a backard step and continue to ignore it forever, assuming the
need to step back continures. You can of course tinker the step
threshold larger than the default 128 ms, but you must accept that the
time to complete a correction and assume applications are synchronized
is 2000 s for every second of correction.
Some systems, including Linux, Solaris and IRIX, have replaced the
original Unix adjtime() design with what they believe is a fast
adjustemt algorithm. This introduces an extra pole in the transient
response and results in large overcorrections and overshoot, especially
with large corrections. The effect is that applications swing in and out
of synchronization until the transients die down.
If the above constraints are not acceptable, I strongly advise you to
avoid using NTP.
Dave
Evandro Menezes wrote:
> On another note, I wish that NTP had an option to disable backward
> jumps in time. Is it something that has been considered before?
>
> TIA
More information about the questions
mailing list