mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	 Sean Christopherson <seanjc@google.com>
Subject: [GIT PULL] KVM: x86: Misc changes for 6.20
Date: Fri,  6 Feb 2026 20:10:06 -0800	[thread overview]
Message-ID: <20260207041011.913471-5-seanjc@google.com> (raw)
In-Reply-To: <20260207041011.913471-1-seanjc@google.com>

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(-)

  parent reply	other threads:[~2026-02-07  4:10 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-07  4:10 [GIT PULL] KVM: x86 pull requests " Sean Christopherson
2026-02-07  4:10 ` [GIT PULL] KVM: x86: APIC related changes " Sean Christopherson
2026-02-09 18:33   ` Paolo Bonzini
2026-02-07  4:10 ` [GIT PULL] KVM: Generic " Sean Christopherson
2026-02-09 17:38   ` Paolo Bonzini
2026-02-09 17:42     ` Paolo Bonzini
2026-02-10  0:33       ` Sean Christopherson
2026-02-27 23:21         ` Sean Christopherson
2026-02-28 13:56           ` Paolo Bonzini
2026-03-02 14:53             ` Sean Christopherson
2026-02-07  4:10 ` [GIT PULL] KVM: guest_memfd " Sean Christopherson
2026-02-07  4:10 ` Sean Christopherson [this message]
2026-02-09 17:56   ` [GIT PULL] KVM: x86: Misc " Paolo Bonzini
2026-02-09 21:19     ` Sean Christopherson
2026-02-07  4:10 ` [GIT PULL] KVM: x86: Mediated PMU " Sean Christopherson
2026-02-09 16:44   ` Sean Christopherson
2026-02-07  4:10 ` [GIT PULL] KVM: selftests changes " Sean Christopherson
2026-02-09 17:46   ` Paolo Bonzini
2026-02-07  4:10 ` [GIT PULL] KVM: x86: SVM " Sean Christopherson
2026-02-09 17:51   ` Paolo Bonzini
2026-02-07  4:10 ` [GIT PULL] KVM: x86: VMX " Sean Christopherson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260207041011.913471-5-seanjc@google.com \
    --to=seanjc@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®