]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Update reported RMS offset quickly on start
authorMiroslav Lichvar <mlichvar@redhat.com>
Wed, 8 Feb 2012 13:24:42 +0000 (14:24 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Wed, 8 Feb 2012 13:30:35 +0000 (14:30 +0100)
reference.c

index 093b6be7eba2528b5b7bb650654217c09ca277ae..7c8f5d0247a37f76c301ca5e61b8791ca44c6dff 100644 (file)
@@ -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;