Add README-clocksource-race.md

This commit is contained in:
Mika 2025-12-02 17:02:55 +00:00
parent 06b149262a
commit e689abc8b9

View file

@ -0,0 +1,12 @@
# clocksource_race_analysis
## Änderung
- `baseline_recalc()` wird unmittelbar nach `enable_new_clocksource()` ausgeführt, damit kein erstes `read()` mehr auf die alte Baseline zugreift.
- `smp_wmb()` stellt sicher, dass locklose Leser die neue Baseline sehen, bevor sie den Offset interpretieren.
- Der Workqueue-Refresh bleibt aktiv, dient jetzt aber nur noch als Hintergrund-Sanity-Check.
## Testplan
1. `trace-cmd record -e clocksource:* -- ./run-switch.sh` auf unpatchtem Kernel zur Referenz.
2. Patch anwenden, Kernel neu bauen, VM booten.
3. 100 VM-Zyklen `TSC -> HPET -> TSC` mit Instrumentierung fahren, verifizieren, dass kein erster `read()` mehr den ~1,11 s Sprung zeigt.
4. Gegencheck auf Bare-Metal für HPET↔ACPI und TSC↔ACPI, Resultate gegen monotonic clock referenzieren.