Re: [PATCH v6 00/28] KVM: combined patchset for MBEC/GMET support
From: David Riley
Date: Tue May 19 2026 - 04:06:52 EST
Hi Sean,
thanks for the input.
On 5/15/26 8:31 PM, Sean Christopherson wrote:
[...]
Hmm, this probably confirms its the hrtimer issue? When using the VMX preemption
timer, KVM (on Intel) doesn't use an hrtimer to emulate L1's APIC timer. I _think_
forcing KVM to use an hrtimer would cause result in hrtimers being reprogrammed
in response to KVM's usage, and thus mask the deferred reprogramming bug? That
sounds plausible-ish?
[...]
Can you try Peter's fixes? AIUI, the reporter's hack-a-fix was very far from a
complete fix. Note, there's a v3 of patch 1 (b4 should take care of that for you,
if you're using b4).
https://lore.kernel.org/all/20260423155611.216805954@xxxxxxxxxxxxx
I tested it again with the v3 hrtimer patches [0] applied on top of the v6
MBEC/GMET series.
Setup:
* Host CPU: Intel(R) Core(TM) Ultra 7 265K (Arrow Lake)
* Host OS: Proxmox VE (based on Debian Trixie)
* Host Kernel: mainline kernel 7.1.0-rc4 with v6 MBEC/GMET and v3 hrtimer [0]
* QEMU: 11.0.0 (downstream build)
* Guest OS: Windows Server 2026 (24H2, Build 26100.1742) with VBS/Hyper-V
enabled.
Using:
* QEMU CPU Options: -cpu host,level=30,+vmx-mbec,-cet-ss,-cet-ibt
The CPU lockups did not occur anymore and I was able to boot the Guest. Keep
in mind that in this case I have the cet-ss and cet-ibt not passed along to the
guest.
If I launch the same Virtual Guest using
* QEMU CPU Options: -cpu host,level=30,+vmx-mbec,+cet-ss,+cet-ibt
The issue of the VM being stuck on boot persists even with the hrtimer patches
applied, but now there are no hard/soft lockups of the CPU anymore.
I get this trace using: trace-cmd record -e kvm
CPU 0/KVM-11837 [001] d..2. 1363.314703: kvm_apic_accept_irq: apicid 0 vec 209 (Fixed|edge)
CPU 0/KVM-11837 [001] d..2. 1363.314703: kvm_apicv_accept_irq: apicid 0 vec 209 (Fixed|edge)
CPU 0/KVM-11837 [001] d..3. 1363.314703: kvm_hv_timer_state: vcpu_id 0 hv_timer 1
CPU 0/KVM-11837 [001] d..1. 1363.314703: kvm_entry: vcpu 0 rip 0xfffff801a59020f7
CPU 0/KVM-11837 [001] d..1. 1363.314703: kvm_wait_lapic_expire: vcpu 0: delta -590 (late)
CPU 0/KVM-11837 [001] d..1. 1363.314993: kvm_exit: reason EXTERNAL_INTERRUPT rip 0xfffff801a59020ec info 0 0
CPU 0/KVM-11837 [001] d..1. 1363.314994: kvm_entry: vcpu 0 rip 0xfffff801a59020ec
CPU 0/KVM-11837 [001] d..1. 1363.315993: kvm_exit: reason EXTERNAL_INTERRUPT rip 0xfffff801a59020ec info 0 0
CPU 0/KVM-11837 [001] d..1. 1363.315993: kvm_entry: vcpu 0 rip 0xfffff801a59020ec
CPU 0/KVM-11837 [001] d..1. 1363.316993: kvm_exit: reason EXTERNAL_INTERRUPT rip 0xfffff801a59020ec info 0 0
CPU 0/KVM-11837 [001] d..1. 1363.316994: kvm_entry: vcpu 0 rip 0xfffff801a59020ec
CPU 0/KVM-11837 [001] d..1. 1363.317992: kvm_exit: reason EXTERNAL_INTERRUPT rip 0xfffff801a59020ec info 0 0
CPU 0/KVM-11837 [001] d..1. 1363.317993: kvm_entry: vcpu 0 rip 0xfffff801a59020ec
CPU 0/KVM-11837 [001] d..1. 1363.318992: kvm_exit: reason EXTERNAL_INTERRUPT rip 0xfffff801a59020ec info 0 0
CPU 0/KVM-11837 [001] d..1. 1363.319269: kvm_entry: vcpu 0 rip 0xfffff801a59020ec
CPU 0/KVM-11837 [001] d..1. 1363.319992: kvm_exit: reason EXTERNAL_INTERRUPT rip 0xfffff801a59020ec info 0 0
CPU 0/KVM-11837 [001] d..1. 1363.319994: kvm_entry: vcpu 0 rip 0xfffff801a59020ec
I did not spot anything useful in the dmesg/journalctl output.
I also did the same tests with mainline kernel
7.1.0-rc3 with v6 MBEC/GMET (patches 1-22 of 28) and v3 hrtimer [0]
and got the same results.
Best regards,
David
[0] https://lore.kernel.org/all/20260423155611.216805954@xxxxxxxxxxxxx