Re: [PATCH 2/2] x86/kvm/vmx: Fix VMX vs hrtimer_rearm_deferred()
From: Zhao Liu
Date: Mon May 18 2026 - 03:41:10 EST
On Thu, Apr 23, 2026 at 05:56:13PM +0200, Peter Zijlstra wrote:
> Date: Thu, 23 Apr 2026 17:56:13 +0200
> From: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Subject: [PATCH 2/2] x86/kvm/vmx: Fix VMX vs hrtimer_rearm_deferred()
>
> Vishal reported that KVM unit test 'x2apic' started failing after commit
> 0e98eb14814e ("entry: Prepare for deferred hrtimer rearming").
>
> The reason is that KVM/VMX is injecting interrupts while it has IRQs disabled,
> for a context that will enable IRQs, this means that regs->flags.X86_EFLAGS_IF
> == 0 and the irqentry_exit() will not DTRT.
>
> Notably, irqentry_exit() must not call hrtimer_rearm_deferred() when the return
> context does not have IF set, because this will cause problems vs NMIs.
>
> Therefore, fix up the state after the injection.
>
> Fixes: 0e98eb14814e ("entry: Prepare for deferred hrtimer rearming")
> Reported-by: "Verma, Vishal L" <vishal.l.verma@xxxxxxxxx>
> Closes: https://lore.kernel.org/r/70cd3e97fbb796e2eb2ff8cd4b7614ada05a5f24.camel%40intel.com
> Suggested-by: Thomas Gleixner <tglx@xxxxxxxxxx>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> Tested-by: "Verma, Vishal L" <vishal.l.verma@xxxxxxxxx>
> ---
> arch/x86/entry/common.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
I also found this issue for a normal VM on DMR (with 192 vCPUs). As the
previous threads analysised, this issue is not platform-specific, nor is
it specific to TD.
I applied this series and confirmed this could resolve the hard lockup
in my case, so,
Tested-by: Zhao Liu <zhao1.liu@xxxxxxxxx>