Ok, Thomas, that means that the PIT is reliable (not surprising), and the
PM_TIMER isn't (again, I'm not horribly surprised). And HPET isn't
available, of course.
The old x86-32 code never even bothered with the PM_TIMER for calibration.
I don't understand why the x86-64 code bothers with it either. Why not
just drop that whole broken thing, and just depend on the PIT if there is
no HPET?
I would also like to point out that the 32-bit code actually had a much
nicer PIT setup, using the much better documented mach_prepare_counter()
and mach_countup() helper functions. I'm unhappy to note that the new
"common" code uses what appears to be the inferior code.
Also, note that this is _not_ a new issue. See "verify_pmtmr_rate()" in
drivers/clocksource/acpi_pm.c, along with all the code to check that the
reads are stable in "init_acpi_pm_clocksource()".
IOW, the PM_TIMER has been found to be broken before. Depending on it for
calibration is broken.
Linus
--