On Mon, Jun 08 2026 at 12:29, Teddy Astie wrote:
In 6.12.5+ kernels on AMD CPUs, we observe abnormally long boot times
where the guest is struggling on PV spinlock initialization.
This occurs starting with 6.12.5, and also on more recent kernels on
Intel platforms, but that hasn't been fully investigated at this time
(but I assume it's a variant of the same issue).
This occurs since a backport of 76031d9 ("clocksource: Make negative
motion detection more robust").
Some (claude-based) analysis made appears to relate that to the lack of
proper max_raw_delta in the jiffies clocksource which appears to make
the clock fail to progress meaningfully.
Here is a raw summary of the analysis
> We tracked it down to a single stable backport in 6.12.5: commit
1a678f6829a8 ("clocksource: Make negative motion detection more robust",
upstream 76031d9536a0). It introduces a max_raw_delta field on struct
clocksource but never initializes it for the default boot timekeeper
(the jiffies clocksource), so clocksource_delta() clamps every delta to
0 and CLOCK_MONOTONIC freezes while that clocksource is active.
Bah. jiffies clocksource is registered way _after_ timekeeping started to
use it.
The untested below should fix that.
Thanks,
tglx
---
--- a/kernel/time/jiffies.c
+++ b/kernel/time/jiffies.c
@@ -60,15 +60,9 @@ EXPORT_SYMBOL(get_jiffies_64);
EXPORT_SYMBOL(jiffies);
-static int __init init_jiffies_clocksource(void)
-{
- return __clocksource_register(&clocksource_jiffies);
-}
-
-core_initcall(init_jiffies_clocksource);
-
struct clocksource * __init __weak clocksource_default_clock(void)
{
+ clocksource_register(&clocksource_jiffies);
return &clocksource_jiffies;
}