[PATCH v6 0/4] KVM: x86: Fix hard lockup with periodic timer in guest

From: Sean Christopherson

Date: Thu Nov 13 2025 - 15:51:17 EST


fuqiang's patch/series to fix a bug in KVM's local APIC timer emulation where
it can trigger a hard lockup due to restarting an hrtimer with an expired
deadline over and over (and over).

v6:
- Split the apic_timer_fn() change to a separate patch (mainly for a
bisection point).
- Handle (and WARN on) period=0 in apic_timer_fn().
- Add a patch to grab a pointer to the kvm_timer struct locally.
- Tag the fixes (and prep work) for stable@.

v5:
- https://lore.kernel.org/all/20251107034802.39763-1-fuqiang.wng@xxxxxxxxx
- Add more details in commit messages and letters.

v4:
- https://lore.kernel.org/all/20251105135340.33335-1-fuqiang.wng@xxxxxxxxx
- merge two patch into one

v3:
- https://lore.kernel.org/all/20251022150055.2531-1-fuqiang.wng@xxxxxxxxx
- Fix: advanced SW timer (hrtimer) expiration does not catch up to current
time.
- optimize the commit message of patch 2

v2:
- https://lore.kernel.org/all/20251021154052.17132-1-fuqiang.wng@xxxxxxxxx
- Added a bugfix for hardlockup in v2

v1: https://lore.kernel.org/all/20251013125117.87739-1-fuqiang.wng@xxxxxxxxx

Sean Christopherson (2):
KVM: x86: WARN if hrtimer callback for periodic APIC timer fires with
period=0
KVM: x86: Grab lapic_timer in a local variable to cleanup periodic
code

fuqiang wang (2):
KVM: x86: Explicitly set new periodic hrtimer expiration in
apic_timer_fn()
KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic
HV timer

arch/x86/kvm/lapic.c | 44 +++++++++++++++++++++++++++++++-------------
1 file changed, 31 insertions(+), 13 deletions(-)


base-commit: 16ec4fb4ac95d878b879192d280db2baeec43272
--
2.52.0.rc1.455.g30608eb744-goog