From: Miroslav Lichvar Date: Wed, 8 Feb 2012 13:24:42 +0000 (+0100) Subject: Update reported RMS offset quickly on start X-Git-Tag: 1.27-pre1~17 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d6842301ddcc570e005d779858f8c9596f2a7595;p=thirdparty%2Fchrony.git Update reported RMS offset quickly on start --- diff --git a/reference.c b/reference.c index 093b6be7..7c8f5d02 100644 --- a/reference.c +++ b/reference.c @@ -57,6 +57,7 @@ static double max_update_skew; static double last_offset; static double avg2_offset; +static int avg2_moving; static double correction_time_ratio; @@ -709,10 +710,15 @@ REF_SetReference(int stratum, last_ref_update_interval = update_interval; last_offset = our_offset; - if (avg2_offset > 0.0) + + /* Update the moving average of squares of offset, quickly on start */ + if (avg2_moving) { avg2_offset += 0.1 * (our_offset * our_offset - avg2_offset); - else + } else { + if (avg2_offset > 0.0 && avg2_offset < our_offset * our_offset) + avg2_moving = 1; avg2_offset = our_offset * our_offset; + } /* And now set the freq and offset to zero */ our_frequency = 0.0;