On Mon, 9 Mar 2009, Linus Torvalds wrote:On Mon, 9 Mar 2009, Jesper Krogh wrote:First boot.It's really quite impressively stable, but the fast-PIT calibration frequency is reliably about 3/4 of a promille low. Or, put another way, the TSC difference over the pit calibration is just a _tad_ too small compared to the value we'd expect if that loop of pit_expect_msb() would really run at the expected delay of a 1.193182MHz clock divided by 256.
[ 0.000000] ref_freq: 2311825 pit_freq: 2310386
Second boot:
[ 0.000000] ref_freq: 2311803 pit_freq: 2310190
Third boot:
[ 0.000000] ref_freq: 2311824 pit_freq: 2310080
Fourth boot:
[ 0.000000] ref_freq: 2311831 pit_freq: 2310130
And it's stable in that it really always seems to be off by a very similar amount. It's not moving around very much.
I also wonder why it seems to happen mainly just to _you_. There's absolutely nothing odd in your system, neither a slow CPU or anything else that would stand out.
Grr. Very annoyingly non-obvious.
Indeed. One hint is in the slow calibration path. 3 of 4 boots have:
[ 0.000000] TSC: PIT calibration matches PMTIMER. 2 loops
So the slow calibration path detects some disturbance.
Jesper, can you please apply the following patch instead of Johns and
provide the output for a couple of boots? The output is:
Fast TSC calibration using PIT
tsc 43425305 tscmin 624008 tscmax 632610