All tests on this page so far conducted on Athlon64 2.2 GHz, Linux 2.6 under very light workload.
100 2-hour tests were run for varying PLL gain. Until now the gain has been fixed at 0.1; now it is tested for all values 0.01, 0.02, 0.03, ... to 1.0. The tests were run at the same time, but the starting times were staggered to alleviate contention between the processes. I will not show all the results here, just some representative ones.
Each graph shows the offset as measured by the daemon thread (the thread doing the calibration adjustment). Shown first are runs for gain = 0.01 to 0.05:
Things to note:
Increasing the gain increases oscillation after the spike. Shown below are runs for gain = 0.05, 0.1, 0.15, 0.2, 0.25:
Increasing the gain further completely destabalises the clock. Shown below are the runs for gain = 0.3, 0.4, 0.5, 0.6 and 0.7:
The tests above begin with a loop delay of 1 second, which is permitted to increase in increments of 1 second when the clock is sufficiently stable. Shown below are the loop delays for runs with gain = 0.1, 0.2, 0.3 and 0.4:
As hoped, the loop delay steadily increases except after the spike, which reduces it for some time, and in the cases where the clock stabilised, increases again.
The set of 100 tests were run again, this time with an initial loop delay of 15 seconds, increasing by 5 seconds when stable enough (and decreasing when stability is lost). Offsets for gain = 0.01, 0.02, ... 0.05:
There is no spike in this data; perhaps due to the increased loop delay (or possibly by chance). As expected, the derived clock takes some time to stabilise around 0us (up to 1000 seconds). Increasing the gain improves this:
As with the 1 second loop delay, increasing the gain too much destabilises the clock:
Loop delays are shown below:
It is encouraging to see the loop delay exceed 200 seconds without affecting the stability of the clock.