ntpd: add a comment, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
61313117a0
commit
e4844b8a5f
@ -432,7 +432,7 @@ filter_datapoints(peer_t *p, double t)
|
|||||||
sum += dispersion(&p->filter_datapoint[idx], t) / (2 << i);
|
sum += dispersion(&p->filter_datapoint[idx], t) / (2 << i);
|
||||||
|
|
||||||
if (minoff == p->filter_datapoint[idx].d_offset) {
|
if (minoff == p->filter_datapoint[idx].d_offset) {
|
||||||
minoff -= 1;
|
minoff -= 1; /* so that we don't match it ever again */
|
||||||
} else
|
} else
|
||||||
if (maxoff == p->filter_datapoint[idx].d_offset) {
|
if (maxoff == p->filter_datapoint[idx].d_offset) {
|
||||||
maxoff += 1;
|
maxoff += 1;
|
||||||
@ -447,6 +447,13 @@ filter_datapoints(peer_t *p, double t)
|
|||||||
wavg += x; /* add another older6/64 to form older6/32 */
|
wavg += x; /* add another older6/64 to form older6/32 */
|
||||||
p->filter_offset = wavg;
|
p->filter_offset = wavg;
|
||||||
p->filter_dispersion = sum;
|
p->filter_dispersion = sum;
|
||||||
|
//TODO: fix systematic underestimation with large poll intervals.
|
||||||
|
// Imagine that we still have a bit of uncorrected drift,
|
||||||
|
// and poll interval is big. Offsets form a progression:
|
||||||
|
// 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7, 0.7 is most recent.
|
||||||
|
// The algorithm above drops 0.0 and 0.7 as outliers,
|
||||||
|
// and then we have this estimation, ~25% off from 0.7:
|
||||||
|
// 0.1/32 + 0.2/32 + 0.3/16 + 0.4/8 + 0.5/4 + 0.6/2 = 0.503125
|
||||||
|
|
||||||
// +----- -----+ ^ 1/2
|
// +----- -----+ ^ 1/2
|
||||||
// | n-1 |
|
// | n-1 |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user