[GIT PULL] KVM: x86: SVM changes for 7.1 (short version)
From: Sean Christopherson
Date: Fri Apr 10 2026 - 20:01:00 EST
This is (obviously) the partial version of the SVM changes.
The highlight is here is the AVIC IRQ window fixes and optimizations. The OSVW
changes aren't motivated by anything beyond a "someone is wrong on the internet!"
type reaction.
The following changes since commit 11439c4635edd669ae435eec308f4ab8a0804808:
Linux 7.0-rc2 (2026-03-01 15:39:31 -0800)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-svm-partial-7.1
for you to fetch changes up to a56444d5e7387effbc61d6b98fe5d68897017fc9:
KVM: SVM: Skip OSVW MSR reads if current CPU doesn't support the feature (2026-03-03 12:23:26 -0800)
----------------------------------------------------------------
KVM SVM changes for 7.1 (short version)
- Fix and optimize IRQ window inhibit handling for AVIC (the tracking needs to
be per-vCPU, e.g. so that KVM doesn't prematurely re-enable AVIC if multiple
vCPUs have to-be-injected IRQs).
- Fix an undefined behavior warning where a crafty userspace can read the
"avic" module param before it's fully initialized.
- Fix a (likely benign) bug in the "OS-visible workarounds" handling, where
KVM could clobber state when enabling virtualization on multiple CPUs in
parallel, and clean up and optimize the code.
----------------------------------------------------------------
Gal Pressman (1):
KVM: SVM: Fix UBSAN warning when reading avic parameter
Li RongQing (1):
KVM: SVM: Mark module parameters as __ro_after_init for security and performance
Sean Christopherson (9):
KVM: SVM: Fix clearing IRQ window inhibit with nested guests
KVM: SVM: Fix IRQ window inhibit handling across multiple vCPUs
KVM: SVM: Optimize IRQ window inhibit handling
KVM: Isolate apicv_update_lock and apicv_nr_irq_window_req in a cacheline
KVM: SVM: Serialize updates to global OS-Visible Workarounds variables
KVM: SVM: Skip OSVW MSR reads if KVM is treating all errata as present
KVM: SVM: Extract OS-visible workarounds setup to helper function
KVM: SVM: Skip OSVW variable updates if current CPU's errata are a subset
KVM: SVM: Skip OSVW MSR reads if current CPU doesn't support the feature
arch/x86/include/asm/kvm_host.h | 29 ++++++-
arch/x86/kvm/svm/avic.c | 17 ++++-
arch/x86/kvm/svm/sev.c | 8 +-
arch/x86/kvm/svm/svm.c | 164 ++++++++++++++++++++++++----------------
arch/x86/kvm/svm/svm.h | 1 +
arch/x86/kvm/x86.c | 45 ++++++++++-
6 files changed, 188 insertions(+), 76 deletions(-)