]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Slowly back off sampling rate when selected source loses connectivity
authorMiroslav Lichvar <mlichvar@redhat.com>
Mon, 6 Dec 2010 13:53:37 +0000 (14:53 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Tue, 7 Dec 2010 15:47:57 +0000 (16:47 +0100)
ntp_core.c

index 24bcc2eceb82844340f423bc8a9e03db14215e83..a62557d78f7f026b8fa2d5549e91a21a78cd9758 100644 (file)
@@ -645,20 +645,13 @@ transmit_timeout(void *arg)
     /* Nothing */
   }
 
-  /* If the source to which we are currently locked starts to lose
-     connectivity, increase the sampling rate to try and bring it
-     back.  If any other source loses connectivity, back off the
-     sampling rate to reduce wasted sampling. */
-
-  if (SRC_IsSyncPeer(inst->source)) {
-    if (inst->tx_count >= 2) {
-      /* Implies we have missed at least one transmission */
-      adjust_poll(inst, -0.75);
-    }
-  } else {
-    if (inst->tx_count >= 2) {
-      adjust_poll(inst, 0.25);
-    }
+  /* If the source loses connectivity, back off the sampling rate to reduce
+     wasted sampling. If it's the source to which we are currently locked,
+     back off slower. */
+
+  if (inst->tx_count >= 2) {
+    /* Implies we have missed at least one transmission */
+    adjust_poll(inst, SRC_IsSyncPeer(inst->source) ? 0.1 : 0.25);
   }
 
   my_mode = inst->mode;