ntpd: calculate offset to jitter ratio before updating jitter
The offset to jitter ratio is now calculated before updating jitter to make the test more sensitive. function old new delta ntp_init 460 474 +14 update_local_clock 752 764 +12 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 26/0) Total: 26 bytes Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
cd73871178
commit
760d035699
@ -1488,12 +1488,19 @@ update_local_clock(peer_t *p)
|
||||
|
||||
} else { /* abs_offset <= STEP_THRESHOLD */
|
||||
|
||||
/* The ratio is calculated before jitter is updated to make
|
||||
* poll adjust code more sensitive to large offsets.
|
||||
*/
|
||||
G.offset_to_jitter_ratio = abs_offset / G.discipline_jitter;
|
||||
|
||||
/* Compute the clock jitter as the RMS of exponentially
|
||||
* weighted offset differences. Used by the poll adjust code.
|
||||
*/
|
||||
etemp = SQUARE(G.discipline_jitter);
|
||||
dtemp = SQUARE(offset - G.last_update_offset);
|
||||
G.discipline_jitter = SQRT(etemp + (dtemp - etemp) / AVG);
|
||||
if (G.discipline_jitter < G_precision_sec)
|
||||
G.discipline_jitter = G_precision_sec;
|
||||
|
||||
switch (G.discipline_state) {
|
||||
case STATE_NSET:
|
||||
@ -1570,10 +1577,6 @@ update_local_clock(peer_t *p)
|
||||
}
|
||||
}
|
||||
|
||||
if (G.discipline_jitter < G_precision_sec)
|
||||
G.discipline_jitter = G_precision_sec;
|
||||
G.offset_to_jitter_ratio = abs_offset / G.discipline_jitter;
|
||||
|
||||
G.reftime = G.cur_time;
|
||||
G.ntp_status = p->lastpkt_status;
|
||||
G.refid = p->lastpkt_refid;
|
||||
@ -2111,6 +2114,7 @@ static NOINLINE void ntp_init(char **argv)
|
||||
bb_error_msg_and_die(bb_msg_you_must_be_root);
|
||||
|
||||
/* Set some globals */
|
||||
G.discipline_jitter = G_precision_sec;
|
||||
G.stratum = MAXSTRAT;
|
||||
if (BURSTPOLL != 0)
|
||||
G.poll_exp = BURSTPOLL; /* speeds up initial sync */
|
||||
|
Loading…
Reference in New Issue
Block a user