After debugging the unstable tsc problem for the BIOS of my company products, I suspect that tsc can always be unstable when the only source of synchronization is jiffies.
I got an error, as
Clocksource tsc unstable (delta = -531266231 ns).then the kernel chose jiffies other than tsc. The only two sources of time are tsc and jiffies. I tried Linux 2.6 and 3.2 with i386 and x64. The kernel said that the CPU actually supports constant tsc and invariant tsc.
After checking the Linux source code, I found that tsc has a flag CLOCKSOURCE_MUST_VERIFY, and jiffies does not. I assume that if there are only two time sources, jiffies and tsc, then jiffies will be a watchdog timer. However, compared to tsc, jiffies are a very poor source of synchronization, and therefore I suspect that tsc will always be "unstable" in this situation, because there is a bad watchdog timer for checking it.
I also check out some other system with well-functioning tsc and find that they have other clock sources like Hpet or acpi_pm.
Therefore, how can I determine if tsc instability arises from jiffies or some error elsewhere?
source
share