Re: [chrony-dev] SW/HW timestamping on Linux |
[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-dev Archives ]
The change has a couple of things it does. First, it ignore bad slots. On all the systems I’ve tested, slot one is always the worst slot, which long delays, resulting in a baseline skew. The second is avoiding the SysPrecision variable as a gate. Using this results in a tendency to select the wider slots for averaging, while ignoring the consistent slots. In my testing on busy systems, it discarded many slots, sometimes to the point of all but two slots. This is obviously bad for averaging. My first attempt was simply to remove the averaging and use the best slot. This provided an improvement on the noise over the prior approach, but using the slots within 10% is smoother. FWIW, I haven’t dug into how SysPrecision is calculated, but in looking at several systems it appears to be inconsistent on identical hardware.
I agree. I think all of this should be done using 64 bit integers, but the code that was there was using floating point so I stayed with that to fit in. Use of doubles seems rather pervasive throughout chrony. I was very surprised by this. I think it makes sense to use integer math for as much as possible. At least for anything to do with time intervals. But it seemed a bit much to rewrite everything to address this one issue. :) Denny |
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |