Thanks, that's very useful information. Unfortunately, I can't easily reproduce the issue; I can't seem to get pvclock_update_vm_gtod_copy() and __get_kvmclock() to run on different vCPUs which was one of the two required conditions that triggered the unsigned subtraction wraparound (the second condition being inconsistent values between L1 vCPUs).
I just upgraded to Windows 11 25H2 and my Hyper-V VM config from v9 to v12, I now see tsc_reliable and constant_tsc in the L1 Linux VM lscpu and /sys/devices/system/clocksource/clocksource0/current_clocksource is tsc. I'll report back if I still encounter the problem when spinning up L2 Linux VMs with KVM. On Tue, Apr 7, 2026 at 1:40 PM Michael Kelley <[email protected]> wrote: > > From: Thomas Lefebvre <[email protected]> Sent: Tuesday, April 7, > 2026 12:13 PM > > > > Hi everyone, thank you for your attention to this bug report. > > > > Michael, > > > > 1. No, lscpu in the L1 guest does not show the flags "tsc_reliable" > > and "constant_tsc". > > $ lscpu | grep tsc_reliable > > $ lscpu | grep constant_tsc > > $ cat /sys/devices/system/clocksource/clocksource0/current_clocksource > > hyperv_clocksource_tsc_page > > > > 2. Windows 10 > > Version 22H2 (OS Build 19045.6466) > > > > 3. Hyper-V: privilege flags low 0x2e7f, high 0x3b8030, ext 0x2, hints > > 0x24e24, misc 0xbed7b2 > > > > 4. Yes, the laptop hibernates and then resumes. > > When the problem occurred, the laptop had gone through multiple > > hibernate and resume cycles. > > I haven't seen it happen after a full reboot before a hibernate/resume > > cycle. > > > > Thomas > > > > How easy is it for you to reproduce the problem? Would it be feasible > to get a definitive answer on whether the problem repros after a > full reboot, but before a hibernate/resume cycle? > > There's a known bug Windows 10 Hyper-V where the hardware TSC > scaling gets messed up after a hibernate/resume cycle, causing the TSC > values read in the guest to drift from what the Hyper-V host thinks > the guest's TSC value is. A summary of the problem is here: > https://github.com/microsoft/WSL/issues/6982#issuecomment-2294892954 > > Of course, this doesn't sound like your symptom. And Hyper-V is not > telling your guest that it supports hardware TSC scaling, because the > HV_ACCESS_TSC_INVARIANT flag is *not* set and the clocksource > is hyperv_clocksource_tsc_page. But my understanding is that the code > changes to fix the Hyper-V problem weren't trivial, and I'm speculating > that maybe you are seeing some other symptom of whatever the > underlying Hyper-V issue was. > > Of course, this is just speculation. If the problem can occur before > any hibernate/resume cycles are done, then my speculation is > wrong. But if the problem only happens after a hibernate/resume > cycle, then this known problem, or something related to it, becomes > a pretty good candidate. Unfortunately, I'm pretty sure there's no > fix for Windows 10 Hyper-V. You would need to upgrade to > Windows 11 22H2 or later. > > Michael

