DragonFly commits List (threaded) for 2005-04
cvs commit: src/usr.sbin/dntpd client.c client.h defs.h main.c system.c
dillon 2005/04/26 00:01:43 PDT
DragonFly src repository
usr.sbin/dntpd client.c client.h defs.h main.c system.c
Do not try to collect offset data if a prior offset correction is still
in progress. Since we do not compensate for the prior offset correction,
any corrections based on data accumulated while the prior correction is
active will overshoot or undershoot.
Offset calculations are based on compensated real time rather then
uncompensated real time, which is why this is a problem. Frequency
corrections are based on uncompensated real time and do not have any
similar issue. It would be even better, but more difficult, to adapt
the offset correction code to use uncompensated real time and then take
the compensation into account, but this is a considerably more complex
equation to get right.
There is still another problem and that is the offset error will continue
to build when the frequency is not corrected, potentially resulting in a
longer sync-up time. On the positive side, the offset correction is based
on a standard deviation that only requires a minimum of 4 samples.
Correct a minor compiler warning.
Revision Changes Path
1.8 +19 -12 src/usr.sbin/dntpd/client.c
1.6 +6 -4 src/usr.sbin/dntpd/client.h
1.8 +1 -0 src/usr.sbin/dntpd/defs.h
1.7 +3 -3 src/usr.sbin/dntpd/main.c
1.5 +17 -0 src/usr.sbin/dntpd/system.c