Remove unnecessary wait state from frequency estimator.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
843661dfa2
commit
8a4b2ab9b8
36
clock.c
36
clock.c
|
@ -199,6 +199,11 @@ static enum servo_state clock_no_adjust(struct clock *c)
|
|||
* By leaving out the path delay altogther, we can avoid the
|
||||
* error caused by our imperfect path delay measurement.
|
||||
*/
|
||||
if (!f->ingress1) {
|
||||
f->ingress1 = c->t2;
|
||||
f->origin1 = tmv_add(c->t1, tmv_add(c->c1, c->c2));
|
||||
return state;
|
||||
}
|
||||
f->count++;
|
||||
if (f->count < f->max_count) {
|
||||
return state;
|
||||
|
@ -207,23 +212,24 @@ static enum servo_state clock_no_adjust(struct clock *c)
|
|||
* origin2 = c->t1 (+c->path_delay) + c->c1 + c->c2;
|
||||
*/
|
||||
origin2 = tmv_add(c->t1, tmv_add(c->c1, c->c2));
|
||||
if (f->ingress1) {
|
||||
ratio = tmv_dbl(tmv_sub(origin2, f->origin1)) /
|
||||
tmv_dbl(tmv_sub(c->t2, f->ingress1));
|
||||
pr_info("master offset %10lld s%d ratio %.9f path delay %10lld",
|
||||
c->master_offset, state, ratio, c->path_delay);
|
||||
|
||||
fui = 1.0 +
|
||||
(c->status.cumulativeScaledRateOffset + 0.0) /
|
||||
(1ULL << 41);
|
||||
ratio = tmv_dbl(tmv_sub(origin2, f->origin1)) /
|
||||
tmv_dbl(tmv_sub(c->t2, f->ingress1));
|
||||
|
||||
pr_info("master offset %10lld s%d ratio %.9f path delay %10lld",
|
||||
c->master_offset, state, ratio, c->path_delay);
|
||||
|
||||
fui = 1.0 +
|
||||
(c->status.cumulativeScaledRateOffset + 0.0) /
|
||||
(1ULL << 41);
|
||||
|
||||
pr_debug("peer/local %.9f", c->nrr);
|
||||
pr_debug("fup_info %.9f", fui);
|
||||
pr_debug("product %.9f", fui * c->nrr);
|
||||
pr_debug("sum-1 %.9f", fui + c->nrr - 1.0);
|
||||
pr_debug("master/local %.9f", ratio);
|
||||
pr_debug("diff %+.9f", ratio - (fui + c->nrr - 1.0));
|
||||
|
||||
pr_debug("peer/local %.9f", c->nrr);
|
||||
pr_debug("fup_info %.9f", fui);
|
||||
pr_debug("product %.9f", fui * c->nrr);
|
||||
pr_debug("sum-1 %.9f", fui + c->nrr - 1.0);
|
||||
pr_debug("master/local %.9f", ratio);
|
||||
pr_debug("diff %+.9f", ratio - (fui + c->nrr - 1.0));
|
||||
}
|
||||
f->ingress1 = c->t2;
|
||||
f->origin1 = origin2;
|
||||
f->count = 0;
|
||||
|
|
Loading…
Reference in New Issue