[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260207041011.913471-5-seanjc@google.com>
Date: Fri, 6 Feb 2026 20:10:06 -0800
From: Sean Christopherson <seanjc@...gle.com>
To: Paolo Bonzini <pbonzini@...hat.com>
Cc: kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
Sean Christopherson <seanjc@...gle.com>
Subject: [GIT PULL] KVM: x86: Misc changes for 6.20
No real theme here, truly a misc set of changes. The most notable change is
the Suppress EOI Broadcast quirk (not actually implemented as a quirk), which
generated a _lot_ of discussion (David W. still isn't thrilled that in-kernel
I/O APIC support isn't included[*]), but overall I think we ended up with a
solid implementation.
[*] https://lore.kernel.org/all/83f9b0a5dd0bc1de9d1e61954f6dd5211df45163.camel@infradead.org
The following changes since commit 9ace4753a5202b02191d54e9fdf7f9e3d02b85eb:
Linux 6.19-rc4 (2026-01-04 14:41:55 -0800)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-misc-6.20
for you to fetch changes up to 6517dfbcc918f970a928d9dc17586904bac06893:
KVM: x86: Add x2APIC "features" to control EOI broadcast suppression (2026-01-30 13:28:35 -0800)
----------------------------------------------------------------
KVM x86 misc changes for 6.20
- Disallow changing the virtual CPU model if L2 is active, for all the same
reasons KVM disallows change the model after the first KVM_RUN.
- Fix a bug where KVM would incorrectly reject host accesses to PV MSRs that
were advertised as supported to userspace when running with
KVM_CAP_ENFORCE_PV_FEATURE_CPUID enabled.
- Fix a bug where KVM would attempt to read protect guest state (CR3) when
configuring an async #PF entry.
- Fail the build if EXPORT_SYMBOL_GPL or EXPORT_SYMBOL is used in KVM (for x86
only) to enforce usage of EXPORT_SYMBOL_FOR_KVM_INTERNAL. Explicitly allow
the few exports that are intended for external usage.
- Ignore -EBUSY when checking nested events after a vCPU exits blocking as
the WARN is user-triggerable, and because exiting to userspace on -EBUSY
does more harm than good in pretty much every situation.
- Throw in the towel and drop the WARN on INIT/SIPI being blocked when vCPU is
in Wait-For-SIPI, as playing whack-a-mole with syzkaller turned out to be an
unwinnable game.
- Add support for new Intel instructions that don't require anything beyond
enumerating feature flags to userspace.
- Grab SRCU when reading PDPTRs in KVM_GET_SREGS2.
- Add WARNs to guard against modifying KVM's CPU caps outside of the intended
setup flow, as nested VMX in particular is sensitive to unexpected changes
in KVM's golden configuration.
- Add a quirk to allow userspace to opt-in to actually suppress EOI broadcasts
when the suppression feature is enabled by the guest (currently limited to
split IRQCHIP, i.e. userspace I/O APIC). Sadly, simply fixing KVM to honor
Suppress EOI Broadcasts isn't an option as some userspaces have come to rely
on KVM's buggy behavior (KVM advertises Supress EOI Broadcast irrespective
of whether or not userspace I/O APIC supports Directed EOIs).
- Minor cleanups.
----------------------------------------------------------------
Jun Miao (1):
KVM: x86: align the code with kvm_x86_call()
Khushit Shah (1):
KVM: x86: Add x2APIC "features" to control EOI broadcast suppression
Sean Christopherson (6):
KVM: x86: Disallow setting CPUID and/or feature MSRs if L2 is active
KVM: x86: Return "unsupported" instead of "invalid" on access to unsupported PV MSR
KVM: x86: Enforce use of EXPORT_SYMBOL_FOR_KVM_INTERNAL
KVM: x86: Ignore -EBUSY when checking nested events from vcpu_block()
KVM: x86: Drop WARN on INIT/SIPI being blocked when vCPU is in Wait-For-SIPI
KVM: x86: Harden against unexpected adjustments to kvm_cpu_caps
Vasiliy Kovalev (1):
KVM: x86: Add SRCU protection for reading PDPTRs in __get_sregs2()
Xiaoyao Li (1):
KVM: x86: Don't read guest CR3 when doing async pf while the MMU is direct
Zhao Liu (4):
KVM: x86: Advertise MOVRS CPUID to userspace
KVM: x86: Advertise AMX CPUIDs in subleaf 0x1E.0x1 to userspace
KVM: x86: Advertise AVX10.2 CPUID to userspace
KVM: x86: Advertise AVX10_VNNI_INT CPUID to userspace
Documentation/virt/kvm/api.rst | 28 ++++++++++++-
arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/include/asm/kvm_host.h | 9 +++++
arch/x86/include/uapi/asm/kvm.h | 6 ++-
arch/x86/kvm/Makefile | 49 +++++++++++++++++++++++
arch/x86/kvm/cpuid.c | 75 +++++++++++++++++++++++++++++------
arch/x86/kvm/cpuid.h | 12 +++++-
arch/x86/kvm/ioapic.c | 2 +-
arch/x86/kvm/lapic.c | 77 +++++++++++++++++++++++++++++++-----
arch/x86/kvm/lapic.h | 2 +
arch/x86/kvm/mmu/mmu.c | 11 +++---
arch/x86/kvm/pmu.c | 2 +-
arch/x86/kvm/reverse_cpuid.h | 19 +++++++++
arch/x86/kvm/svm/svm.c | 4 +-
arch/x86/kvm/vmx/vmx.c | 4 +-
arch/x86/kvm/x86.c | 81 +++++++++++++++++++++++---------------
arch/x86/kvm/x86.h | 15 ++++++-
17 files changed, 328 insertions(+), 69 deletions(-)
Powered by blists - more mailing lists