[time-nuts] x86 CPU Timekeeping and clock generation

Magnus Danielson magnus at rubidium.se
Wed Jan 6 20:00:44 UTC 2021


Hi,

On 2021-01-06 14:18, Poul-Henning Kamp wrote:
> --------
> Magnus Danielson writes:
>
>> If the actual clock is more than 15 ppm off from the value in the drift
>> file, it will never track in the frequency error. This is due to
>> algorithm error in the NTPD. I have pointed out this problem, but there
>> have been very little interest in fixing it.
> You're thinking of the integrator-windup issue ?
Integrator windup is not really an issue. That the phase wraps around is
not an issue, it's a solution. If you do not want it to be an issue,
open up bandwidth initially and you will lock-in quickly, then reduce
bandwidth in steps the right way and you are set. This is essentially
what a Kalman filter will do anyway.
>
> Yeah, that's very old news.  I think I first documented it to Dave
> Mills in 1994, but I never managed to convince him to take my fix
> (Clamp I-term until D-term has the correct sign for the resiudal).
>
> That's when I started writing my own PLLs.
Yeah, I did not manage to convince him either.
> In general, the driftfile should never be used if NTP has a network
> connection, it's raison-d'être was primarily the machines syncing
> time via telephone twice per day.
>
>
> PS: The drift file also soak up rounding/truncation errors in the
>     kernels timekeeping code.
>
Yeah, well, if fault handing for it would work better than it does, then
it would not be an issue. If the heuristics it has would be brought out
and replaced, then the drift file could be made to work well.

Cheers,
Magnus





More information about the Time-nuts_lists.febo.com mailing list