Blob Blame History Raw
diff -up ntp-4.2.4p7/ntpd/ntp_loopfilter.c.daemonpll ntp-4.2.4p7/ntpd/ntp_loopfilter.c
--- ntp-4.2.4p7/ntpd/ntp_loopfilter.c.daemonpll	2009-05-18 18:13:31.000000000 +0200
+++ ntp-4.2.4p7/ntpd/ntp_loopfilter.c	2009-05-18 18:18:13.000000000 +0200
@@ -489,10 +489,9 @@ local_clock(
 			/*
 			 * For the PLL the integration interval
 			 * (numerator) is the minimum of the update
-			 * interval and poll interval. This allows
-			 * oversampling, but not undersampling.
+			 * interval and Allan intercept.
 			 */ 
-			etemp = min(mu, (u_long)ULOGTOD(sys_poll));
+			etemp = min(mu, allan_xpt);
 			dtemp = 4 * CLOCK_PLL * ULOGTOD(sys_poll);
 			plladj = fp_offset * etemp / (dtemp * dtemp);
 			rstclock(S_SYNC, peer->epoch, fp_offset);
@@ -801,13 +805,10 @@ adj_host_clock(
 
 	/*
 	 * Implement the phase and frequency adjustments. The gain
-	 * factor (denominator) is not allowed to increase beyond the
-	 * Allan intercept. It doesn't make sense to average phase noise
-	 * beyond this point and it helps to damp residual offset at the
-	 * longer poll intervals.
+	 * factor (denominator) increases with poll interval, so is
+	 * dominated by the FLL above the Allan intercept.
 	 */
-	adjustment = clock_offset / (CLOCK_PLL * min(ULOGTOD(sys_poll),
-	    allan_xpt));
+	adjustment = clock_offset / (CLOCK_PLL * ULOGTOD(sys_poll));
 	clock_offset -= adjustment;
 	adj_systime(adjustment + drift_comp);
 #endif /* LOCKCLOCK */