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 7.4
Date: Thu, 15 Oct 2026 21:44:08 -0700 [thread overview]
Message-ID: <20261016044415.958618-4-seanjc@google.com> (raw)
In-Reply-To: <20261016044415.958618-1-seanjc@google.com>
This one really lives up to its name. There's a lot of smallish stuff all over.
There's a minor conflict between this and the "vmx" branch, more details in the
"vmx" pull request.
The following changes since commit d4b7fb647204f0c81dfeae2d1a708e4d858e0c94:
Merge branch 'kvm-xen-longmode' into HEAD (2026-09-04 17:35:03 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-misc-7.4
for you to fetch changes up to 88b23a2e8286b7016c3b58dc10093cf28c22aa3d:
KVM: x86: Request event processing for exception VM-Exits (2026-10-02 07:49:40 -0700)
----------------------------------------------------------------
KVM x86 misc changes for 7.4
- Mask off the address space ID when checking for illegal usage of
kvm_set_internal_memslot() to prevent false negatives on the sanity check.
- Explicitly zero reserved flags when delivering a SynIC message to avoid
leaking a byte of stack information to the guest.
- Rework TDX's handling of the canonical MMU root level to not rely on
userspace to fill CPUID correctly, as doing so lets userspace trivially
trigger a KVM_BUG_ON().
- Reject KVM_SET_NESTED_STATE if userspace "restores" L1 with EFER.LMA=1 &&
EFER.LME=0, which confuses KVM into trying to configure an 64-bit MMU
without PAE.
- Ignore EFER.LMA (clear it from KVM's cached save state) if EFER.LME=0 when
preparing L2 state, to fix another way to confuse KVM's MMU (and because
real hardware also ignores EFER.LMA).
- Improve KVM's sanity checks for a misconfigured MMU to (hopefully) detect
all of the ways KVM can botch EFER.LMA vs. CR4.PAE.
- Remove the "full" out-param from kvm_x86_ops.flush_tlb_gva() as the param
is only used to avoid what effectively amounts to a single memory write.
- Fix a mostly-benign bug where KVM can write through a guest's read-only
mapping due to not checking the error code when expediting emulated MMIO
page faults.
- Honor the guest's view of the "EFER.LMSLE must be zero" defeature so that
userspace can provide migration compatibility between Rome and Milan+.
- Pend a KVM_REQ_EVENT request when an exception is morphed into a nested
VM-Exit, otherwise KVM can fail to actually deliver the nested VM-Exit,
e.g. when injecting a page fault.
- Add support for PML on SVM.
- Add support for virtualizating Bus Lock Detect on SVM, and fix a number of
DR6 bugs and warts along the way.
- Misc fixes and cleanups.
----------------------------------------------------------------
Hao Xiang (1):
KVM: x86: Rename CPUID feature bit AVX10_VNNI_INT to AVX10_V1_AUX
Jim Mattson (4):
KVM: x86: Advertise EFER_LMSLE_MBZ when KVM disallows EFER.LMSLE
KVM: x86: Honor the guest's EFER_LMSLE_MBZ
KVM: selftests: Rename svm_nested_clear_efer_svme to svm_nested_efer_test
KVM: selftests: Add coverage for the EFER_LMSLE_MBZ defeature
Karl Mehltretter (2):
Documentation: KVM: SEV: Use the uapi structure names
Documentation: KVM: x86: Use struct kvm_clock_pairing in hypercalls.rst
Kyle Zeng (1):
KVM: x86: Restrict saved GPA writes to hardware write faults
Loc Nguyen (1):
KVM: x86: Request event processing for exception VM-Exits
Luka Absandze (1):
KVM: x86/pmu: Don't retry a counter whose config was rejected
Nikunj A Dadhania (7):
KVM: x86: Move PML page to common vcpu arch structure
KVM: x86: Carve out PML flush routine
KVM: VMX: Use cpu_dirty_log_size instead of enable_pml for PML checks
KVM: x86: Carve out common dirty logging update
x86/cpufeatures: Add Page modification logging
KVM: SVM: Use BIT_ULL for 64-bit misc_ctl bit definitions
KVM: SVM: Add Page modification logging support
Paolo Bonzini (1):
KVM: x86: remove "full" out-argument from flush_tlb_gva
Ravi Bangoria (1):
KVM: SVM: Add support for virtualizating Bus Lock Detect
Sean Christopherson (20):
KVM: x86: Zero reserved synic flags when delivering message to avoid stack leak
KVM: x86: Track kvm_vcpu_arch.pending_ioapic_eoi as a u8 to drop dead BUG_ON()
KVM: x86/mmu: Use KVM's max TDP level to determine need for 32-bit TDP root
KVM: VMX: Explicitly track TDX VMs' root level instead of guessing it from CPUID
KVM: VMX: Drop TDX_SHARED_BIT_PWL_{4,5} and dedup related code
KVM: nSVM: Reject KVM_SET_NESTED_STATE if L1 has EFER.LMA=1 && EFER.LME=0
KVM: nSVM: Ignore EFER.LMA if EFER.LME=0 when preparing L2 state
KVM: x86/mmu: Bug the VM if KVM attempts to walk more levels than the MMU has
KVM: x86/mmu: Bug the VM if KVM calcs a CPU role with EFER.LMA=1 && CR4.PAE=0
KVM: x86/mmu: Convert MMU walker's bounds check from BUG_ON() to KVM_BUG_ON()
KVM: VMX: Pass @vcpu, not @vmx to init_vmcs()
KVM: x86: Preserve DR6.BLD (Bus Lock Detect) when delivering #DB payload
KVM: x86: Rename kvm_dr6_fixed() => kvm_get_dr6_fixed_1()
KVM: Return an "unsigned long", not "u64" for the fixed-1 DR6 bits
KVM: x86: Force fixed-1 bits in DR6 after synchronizing with hardware
KVM: x86: Set guest's fixed-1 DR6 bits when delivering #DB payload
KVM: x86: Kill off DR6_FIXED_1 to prevent future misuse
KVM: SVM: Add helper to query if LBR virtualization needs to be enabled
KVM: nSVM: Open code check on LBR virtualization being enabled in vmcb12
KVM: selftests: Add module param API to check if nested virtualization is enabled
Shivansh Dhiman (3):
KVM: nSVM: Disable LBRV in nested control cache when unsupported
KVM: nSVM: Don't assume all active-low bits DR6 are fixed-1
KVM: SVM: Add a vCPU-aware helper to get supported DEBUGCTL bits
Tharit Tangkijwanichakul (2):
KVM: x86: Reject reserved CR8 bits in KVM_SET_SREGS
KVM: selftests: Add CR8 reserved-bit checks to set_sregs_test
Zeng Chi (1):
KVM: Mask off the address space ID in kvm_set_internal_memslot() check
Documentation/virt/kvm/api.rst | 25 ++
.../virt/kvm/x86/amd-memory-encryption.rst | 8 +-
Documentation/virt/kvm/x86/hypercalls.rst | 2 +-
arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/include/asm/kvm_host.h | 10 +-
arch/x86/include/asm/svm.h | 14 +-
arch/x86/include/uapi/asm/svm.h | 2 +
arch/x86/kernel/cpu/scattered.c | 1 +
arch/x86/kvm/cpuid.c | 36 +--
arch/x86/kvm/cpuid.h | 1 -
arch/x86/kvm/hyperv.c | 9 +-
arch/x86/kvm/kvm_emulate.h | 4 +-
arch/x86/kvm/lapic.c | 4 +-
arch/x86/kvm/lapic.h | 2 +-
arch/x86/kvm/mmu/mmu.c | 29 ++-
arch/x86/kvm/mmu/paging_tmpl.h | 17 +-
arch/x86/kvm/msrs.c | 12 +-
arch/x86/kvm/pmu.c | 14 +-
arch/x86/kvm/regs.c | 16 +-
arch/x86/kvm/regs.h | 11 +-
arch/x86/kvm/reverse_cpuid.h | 2 +-
arch/x86/kvm/svm/nested.c | 46 ++--
arch/x86/kvm/svm/sev.c | 7 +-
arch/x86/kvm/svm/svm.c | 162 ++++++++++++-
arch/x86/kvm/svm/svm.h | 13 +-
arch/x86/kvm/vmx/main.c | 8 +-
arch/x86/kvm/vmx/tdx.c | 21 +-
arch/x86/kvm/vmx/vmx.c | 94 +++-----
arch/x86/kvm/vmx/vmx.h | 9 +-
arch/x86/kvm/vmx/x86_ops.h | 4 +-
arch/x86/kvm/x86.c | 130 +++++++---
arch/x86/kvm/x86.h | 10 +
tools/testing/selftests/kvm/Makefile.kvm | 2 +-
.../testing/selftests/kvm/include/x86/processor.h | 14 ++
tools/testing/selftests/kvm/x86/set_sregs_test.c | 11 +
.../selftests/kvm/x86/svm_nested_clear_efer_svme.c | 50 ----
.../selftests/kvm/x86/svm_nested_efer_test.c | 266 +++++++++++++++++++++
virt/kvm/kvm_main.c | 2 +-
38 files changed, 803 insertions(+), 266 deletions(-)
delete mode 100644 tools/testing/selftests/kvm/x86/svm_nested_clear_efer_svme.c
create mode 100644 tools/testing/selftests/kvm/x86/svm_nested_efer_test.c
next prev parent reply other threads:[~2026-10-16 4:44 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-16 4:44 [GIT PULL] KVM: x86: Pull requests " Sean Christopherson
2026-10-16 4:44 ` [GIT PULL] KVM: x86: Timekeeping fixes+cleanups " Sean Christopherson
2026-10-16 4:44 ` [GIT PULL] KVM: guest_memfd and CoCo changes " Sean Christopherson
2026-10-16 4:44 ` Sean Christopherson [this message]
2026-10-16 4:44 ` [GIT PULL] KVM: x86: MMU " Sean Christopherson
2026-10-16 4:44 ` [GIT PULL] KVM: selftests: Add PPC support Sean Christopherson
2026-10-16 4:44 ` [GIT PULL] KVM: Selftests changes for 7.4 Sean Christopherson
2026-10-16 4:44 ` [GIT PULL] KVM: x86: SVM " Sean Christopherson
2026-10-16 4:44 ` [GIT PULL] KVM: x86: VMX+TDX " Sean Christopherson
2026-10-16 9:11 ` [GIT PULL] KVM: x86: Pull requests " Paolo Bonzini
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=20261016044415.958618-4-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®