* [GIT PULL] KVM: x86 pull requests for 7.3
@ 2026-08-12 21:31 Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: x86: Xen clock/timekeeping changes " Sean Christopherson
` (10 more replies)
0 siblings, 11 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:31 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
Nothing super unusual is cycle. I did manage to end up with two selftests pull
requests, appropriately named selftests and selftests2 in the spirt of KVM uAPI,
with a minor conflict between them. I originally created a dedicated topic
branch for the new irq_test to isolate a dependency on the VFIO library, but
then realized I really wanted to use some of the new infrastructure APIs in
other tests.
Assuming you merge selftests before selftests2, the resolution I've been using is
to use the kvm_ prefixes pthread APIs (which assert success), but otherwise keep
the functional changes from "selftests".
diff --cc tools/testing/selftests/kvm/steal_time.c
index 92e7ffcd68b7,83a1e3aa15cf..6e9cc0e34ec0
--- tools/testing/selftests/kvm/steal_time.c
+++ tools/testing/selftests/kvm/steal_time.c
@@@ -553,11 -553,7 +548,11 @@@ int main(int ac, char **av
/* Steal time from the VCPU. The steal time thread has the same CPU affinity as the VCPUs. */
run_delay = get_run_delay();
- pthread_create(&thread, NULL, do_steal_time, NULL);
- pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset);
- kvm_pthread_create(&thread, &attr, do_steal_time, NULL);
++ kvm_pthread_create(&thread, NULL, do_steal_time, NULL);
++ kvm_pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset);
+ TEST_ASSERT(CPU_COUNT(&cpuset) == 1 && CPU_ISSET(cpu, &cpuset),
+ "Worker failed to inherit parent's CPU affinity");
+
do
sched_yield();
while (get_run_delay() - run_delay < MIN_RUN_DELAY_NS);
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: x86: Xen clock/timekeeping changes for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
@ 2026-08-12 21:31 ` Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: guest_memfd and x86 CoCo " Sean Christopherson
` (9 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:31 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
Three small Xen-specific changes. I was hoping to include a much larger pile
of kvmclock and timekeeping changes from David, hence the "clocks" name.
Another 21 patches _this_ close to making the 7.3 cut, and there's another 25
coming on top of those.
While kvmclock is on your mind (or at least, close to being on your mind), can
you weigh on on the KVM_SET_CLOCK_GUEST discussion[*]? I hopefully, finally
understand the code well enough to be comfortable merging the code, but your
input on the uAPI would be super helpful. Thanks!
[*] https://lore.kernel.org/all/ants4VjfAiblaWsl@google.com
The following changes since commit 8cdeaa50eae8dad34885515f62559ee83e7e8dda:
Linux 7.2-rc2 (2026-07-05 14:44:06 -1000)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-clocks-7.3
for you to fetch changes up to 7d3bd21e457bd091beb982553fcf32fd9ee5929f:
KVM: x86: Remove runtime Xen TSC frequency CPUID update (2026-08-07 09:11:56 -0700)
----------------------------------------------------------------
KVM x86 PV clocks and timekeeping related changes for 7.3
- Remove a defunct masterclock update from kvm_xen_shared_info_init() that
could result in corrupting kvmclock, for a lose definition or "corrupting",
due to triggering an unnecessary switch to/from masterclock mode.
- Skip Xen runstate time updates if time has effectively gone backwards, so
that the guest doesn't report 100% steal time for a very, very long time.
- Drop KVM's runtime updates of the Xen PV timing CPUID leaf, as KVM was
updating the wrong sub-leaf, and upstream KVM will soon provide all the
information needed by userspace to populate the CPUID field itself.
----------------------------------------------------------------
David Woodhouse (3):
KVM: x86/xen: Do not corrupt KVM clock in kvm_xen_shared_info_init()
KVM: x86/xen: Prevent runstate times from becoming negative
KVM: x86: Remove runtime Xen TSC frequency CPUID update
arch/x86/kvm/cpuid.c | 16 ----------------
arch/x86/kvm/xen.c | 30 ++++++++++++++++++++++--------
arch/x86/kvm/xen.h | 13 -------------
3 files changed, 22 insertions(+), 37 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: guest_memfd and x86 CoCo changes for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: x86: Xen clock/timekeeping changes " Sean Christopherson
@ 2026-08-12 21:31 ` Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: Generic and documentation updates " Sean Christopherson
` (8 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:31 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
Fix the SNP VMSA PUNCH_HOLE bug, and prepare guest_memfd for in-place
conversion. Regarding in-place conversion, my goal is to get it applied very
soon after 7.3-rc1, and then get you a pull request by -rc3 or -rc4. I think
we're past the functional issues phase and fully into bikeshedding, so fingers
crossed.
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-coco-7.3
for you to fetch changes up to 2abcdf03fda1380bcbe00417b9ce2b4afb30899b:
KVM: guest_memfd: Make private exactly what can be mapped on page fault (2026-07-27 09:43:44 -0700)
----------------------------------------------------------------
KVM guest_memfd and x86 CoCo changes for 7.3
- Forcefully invalidate SNP VMSA pages if their backing guest_memfd page is
zapped/invalidated, e.g. due to a PUNCH_HOLE in response to a Page-State
Change request.
- Rework the so called "prepare" and "invalidate" guest_memfd hooks to prepare
for in-place private<=>shared conversion, and clean up a few warts along the
way.
----------------------------------------------------------------
Ackerley Tng (1):
KVM: guest_memfd: Only "prepare" folios for private pages
Sean Christopherson (20):
KVM: SEV: Track the GPA of the guest-controlled VMSA used for SNP guests
KVM: SEV: Extract loading of guest-provided VMSA to a separate helper
KVM: SEV: Mark vCPU RUNNABLE after AP_CREATE, even if VMSA is unusable
KVM: SEV: Wire up kvm_x86_ops.gmem_xxx() if and only if CONFIG_KVM_AMD_SEV=y
KVM: x86: Serialize writes to disabled_quirks using kvm->lock
KVM: x86: Ensure runtime reads of disabled_quirks are resolved once
KVM: x86/mmu: Fold kvm_mmu_zap_memslot() into kvm_arch_flush_shadow_memslot()
KVM: x86/mmu: Split kvm_mmu_zap_all_fast() into "front" and "back" halves
KVM: x86/mmu: Use split "zap all fast" helpers when invalidating memslot
KVM: SEV: Forcefully invalidate SNP VMSA if its backing gmem page is zapped
KVM: SEV: Mark vCPU has having guest-provided VMSA even if its invalid
KVM: x86: Guard .gmem_prepare() declarations with HAVE_KVM_GMEM_PREPARE=y
KVM: guest_memfd: Pass the number of pages instead of the end pfn into .invalidate()
KVM: guest_memfd: Rename invalidate() arch hook to reclaim() and isolate it
KVM: x86: Rename kvm_x86_ops' gmem_invalidate() to gmem_make_shared()
KVM: guest_memfd: Drop the redundant printk on arch gmem_prepare() failure
KVM: guest_memfd: Add helpers to query SHARED vs. PRIVATE for a given page
KVM: guest_memfd: Rename prepare() hook and Kconfig to make_private() / CONVERT
KVM: guest_memfd: Explicitly pass number of pages to make_private() hook
KVM: guest_memfd: Make private exactly what can be mapped on page fault
arch/x86/include/asm/kvm-x86-ops.h | 12 ++-
arch/x86/include/asm/kvm_host.h | 15 ++-
arch/x86/kvm/Kconfig | 3 +-
arch/x86/kvm/mmu/mmu.c | 74 ++++++++------
arch/x86/kvm/svm/sev.c | 197 +++++++++++++++++++++++++------------
arch/x86/kvm/svm/svm.c | 10 +-
arch/x86/kvm/svm/svm.h | 19 ++--
arch/x86/kvm/x86.c | 25 +++--
arch/x86/kvm/x86.h | 2 +-
include/linux/kvm_host.h | 11 ++-
virt/kvm/Kconfig | 6 +-
virt/kvm/guest_memfd.c | 72 ++++----------
12 files changed, 269 insertions(+), 177 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: Generic and documentation updates for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: x86: Xen clock/timekeeping changes " Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: guest_memfd and x86 CoCo " Sean Christopherson
@ 2026-08-12 21:31 ` Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: MAINTAINERS " Sean Christopherson
` (7 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:31 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
So the subject is a bit of a lie, as three of the five patches are x86 specific.
But two are common documentation updates, and the third has a hard dependency on
a common KVM change that might be questionable.
The potentially controversial change is to add a per-VM bitmap to track which
vCPU IDs have been "claimed", so that arch code doesn't have to guard against
duplicate vCPU IDs during kvm_arch_vcpu_create() and kvm_arch_vcpu_destroy().
The part that's a little less than awesome is that the bitmap is effectively
wasted memory once the VM has reached steady state. But, AFAICT, it shouldn't
be a meaningful amount of memory in practice.
The alternative solution we came up with was to use another xarray so that the
tracking entry could be deleted once a vCPU is fully realized. The consensus
was that the complexity of the xarray approach wasn't justified, even though
the added complexity is relatively small.
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-generic-7.3
for you to fetch changes up to b41f2ca6c06011c36b75f5d53aa17c05ed90be21:
KVM: VMX: Fix stale PID-pointer table entry left after vCPU free (2026-07-31 15:13:31 -0700)
----------------------------------------------------------------
KVM arch-neutral and documentation changes for 7.3
- Remove kvm_debugfs_dir if kvm_init() fails after creating KVM's debugfs.
- Document some of the "fun" gotchas with the APIC base when creating IRQCHIPs
on x86.
- Add a per-VM bitmap to track which vCPU IDs have been "claimed" but for
which the vCPU isn't yet online, and use the bitmap to reject duplicate IDs
before calling into arch code. This allows arch code to consume vcpu_id
without having to worry about cross-vCPU clobbering (at least s390 and x86
have had related bugs).
- Zero a vCPU's entry in VMX's Posted Interrupt Descriptor table used for IPI
virtualization when the vCPU is freed to fix a use-after-free where hardware
will write to a freed vCPU's PID.
----------------------------------------------------------------
Dmytro Maluka (2):
KVM: Check for duplicate vcpu_id as early as possible
KVM: VMX: Fix stale PID-pointer table entry left after vCPU free
Tim Wiederhake (2):
KVM: x86: Document that KVM_CREATE_IRQCHIP must precede vCPU creation
KVM: x86: Document APIC base address constraint for in-kernel irqchip
leixiang (1):
KVM: Remove kvm_debugfs_dir on kvm_init() error paths
Documentation/virt/kvm/api.rst | 15 ++++++++++++++-
arch/x86/kvm/vmx/vmx.c | 3 +++
include/linux/kvm_host.h | 1 +
virt/kvm/kvm_main.c | 10 +++++++++-
4 files changed, 27 insertions(+), 2 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: MAINTAINERS updates for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
` (2 preceding siblings ...)
2026-08-12 21:31 ` [GIT PULL] KVM: Generic and documentation updates " Sean Christopherson
@ 2026-08-12 21:31 ` Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: Misc changes " Sean Christopherson
` (6 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:31 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
The MAINTAINERS updates that I assume you've already seen, given that you Acked
the last patch in the series. I went with an "ask for forgiveness, not for
permission" approach, and no one yelled at me when I send b4 thanks, so here we
are. :-)
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-maintainers-7.3
for you to fetch changes up to 82bd660be36f345415e0744911df141b9c31a33d:
MAINTAINERS: Add myself (Sean) as a reviewer in the main KVM entry (2026-08-05 10:00:53 -0700)
----------------------------------------------------------------
KVM MAINTAINERS changes for 7.3
- Add the kvm-x86 tree to KVM x86 entries so that humans and robots alike can
more easily find in-flight x86 changes.
- Add a dedicated entry for guest_memfd, with the usual suspects as
Maintainers, and David Hildenbrand as a Reviewer.
- Add Sean as a Reviewer for overall KVM.
----------------------------------------------------------------
Sean Christopherson (5):
MAINTAINERS: Add kvm-x86 tree to KVM x86 entries
KVM: guest_memfd: Move gmem function declarations to dedicated guest_memfd.h
MAINTAINERS: Add an entry for KVM's guest_memfd
MAINTAINERS: Add David H. as a KVM guest_memfd reviewer
MAINTAINERS: Add myself (Sean) as a reviewer in the main KVM entry
MAINTAINERS | 14 ++++++++++++++
virt/kvm/guest_memfd.c | 1 +
virt/kvm/guest_memfd.h | 34 ++++++++++++++++++++++++++++++++++
virt/kvm/kvm_main.c | 1 +
virt/kvm/kvm_mm.h | 27 ---------------------------
5 files changed, 50 insertions(+), 27 deletions(-)
create mode 100644 virt/kvm/guest_memfd.h
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: x86: Misc changes for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
` (3 preceding siblings ...)
2026-08-12 21:31 ` [GIT PULL] KVM: MAINTAINERS " Sean Christopherson
@ 2026-08-12 21:32 ` Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: MMU " Sean Christopherson
` (5 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:32 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
The main set of x86 changes for 7.3. Yosry's INVVPID and EFER validation changes
are probably the most interesting. Almost everything from me falls into the
category of "fixes for things that are technically bugs, but that no one cares
about in practice".
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-misc-7.3
for you to fetch changes up to 66ee8f1556575c8f9ae76932dd3aca65b4b60e59:
KVM: x86/pmu: Clean up vPMU comments and stray blank lines (2026-08-05 16:42:23 -0700)
----------------------------------------------------------------
KVM x86 misc changes for 7.3
- Fix VPID virtualization bugs where KVM would fail to flush hardware TLBs.
- Harden the SNP and TDX "populate" ioctls against bad input, and to prepare
for supporting in-place private<=>shared conversion.
- Fix a variety of #DB priority bugs.
- Fix a class of races related to enabling Hyper-V emulation on a vCPU after
the vCPU is visible to the rest of KVM.
- Use static calls for nested virtualization ops.
- Move more KVM-internal code out of x86's kvm_host.h.
- Enumerate support for a variety of Zhaoxin instructions that don't require
explicit virtualization.
- Fix missing EFER validation bugs, including in the KVM_SET_SREGS* path.
- Harden kvm_vcpu_map() against double-mapping and thus leaking references.
- Misc fixes and cleanups, e.g. for largely benign syzkaller splats.
----------------------------------------------------------------
Binbin Wu (1):
KVM: x86: Fix emulated CPUID features being applied to wrong sub-leaf
Carlos López (3):
KVM: x86: Treat any non-zero return from set_dr() as a faulting condition
KVM: x86: Fix array_index_nospec() protection in kvm_vcpu_ioctl_x86_set_mce()
KVM: x86: hyper-v: Clamp stimer deadline to avoid livelock
Ewan Hai-oc (5):
KVM: x86: Expose Zhaoxin SM2 CPUID feature
KVM: x86: Expose Zhaoxin CCS (SM3 + SM4) CPUID feature
KVM: x86: Expose Zhaoxin RNG2 CPUID feature
KVM: x86: Expose Zhaoxin PHE2 CPUID feature
KVM: x86: Expose Zhaoxin RSA CPUID feature
Hao Zhang (1):
KVM: selftests: Extend the invalid nVMX guest state test to cover RSM
Joerg Roedel (1):
KVM: SEV: Explicitly disallow NULL user address for SNP_LAUNCH_UPDATE
Kai Huang (1):
KVM: x86: Use KVM_X86_OP() for the .pi_update_irte() hook
Like Xu (1):
KVM: x86/pmu: Clean up vPMU comments and stray blank lines
Sean Christopherson (45):
KVM: nVMX: Decouple INVVPID operand checks from flushing of vpid02
KVM: TDX: Return EINVAL, not EOPNOTSUPP, for NULL INIT_MEM_REGION source
KVM: x86: Prioritize DR7.GD #DB over #GP due to illegal DR6/7 value
KVM: x86: Manually check DR4/5 write values to fix SVM intercept priority
KVM: x86: Prioritize #UD on MOV DR over #GP due to non-zero CPL
KVM: VMX: Prioritize DR7.GD=1 #DB over CPL>0 #GP on Intel
KVM: x86: Use kvm_dr{6,7}_valid() to check DR{4,5,6,7} write values in emulator
KVM: x86: WARN if MOV DR emulation hits a "too late" #GP
KVM: x86: Read CR4.DE in emulator if and only if accessing DR4 or DR5
KVM: x86/hyperv: Get target FIFO in hv_tlb_flush_enqueue(), not caller
KVM: x86/hyperv: Check for NULL vCPU Hyper-V object in kvm_hv_get_tlb_flush_fifo()
KVM: x86/hyperv: Ensure vCPU's Hyper-V object is initialized on cross-vCPU accesses
KVM: x86/xen: Always route non-singleshot-timer vCPU hypercalls to userspace
KVM: x86/xen: Consolidate checks on Xen vCPU ID for singleshot timer hypercalls
KVM: x86/xen: Punt singleshot timer hcalls to userspace if Xen vCPU ID isn't set
KVM: Initialize a vCPU's index to '-1' while it's being created
KVM: Move nVMX's lockdep logic for vcpu->mutex to a common helper
KVM: x86: Treat a vCPU as unreachable if its index is invalid
KVM: x86/hyperv: Assert vCPU's mutex is held in to_hv_vcpu()
KVM: x86/hyperv: Use {READ,WRITE}_ONCE for cross-task synic->active accesses
KVM: x86: Move the "APIC attention" macros from kvm_host.h => lapic.c
KVM: x86/mmu: Annotate tdp_enabled as being read-mostly
KVM: x86: Pluralize the macro guard name for msrs.h
KVM: x86: Move CR and DR macro definitions from kvm_host.h => regs.h
KVM: x86: Move KVM_GUESTDBG_VALID_MASK from kvm_host.h => x86.c
KVM: x86: Add static asserts to document connection b/w TSS structs and macros
KVM: x86: Move KVM's arbitrary task switch reason enums to x86.h
KVM: x86: Move "struct kvm_apic_map" definition from kvm_host.h => lapic.h
KVM: x86: Move "struct kvm_vcpu_hv" and all children from kvm_host.h => hyperv.h
KVM: x86: Reject nested CAP enablement if nested virtualization is disabled
KVM: x86: Add static calls for nested virtualization ops
KVM: x86: Move nested_ops out of kvm_x86_ops, to global kvm_nested_ops
KVM: x86: Don't WARN if IRQ disappears because it was cleared from the PIC
KVM: x86: Don't WARN if IRQ disappears when Xen emulation is enabled.
KVM: nVMX: Ensure KVM_REQ_GET_NESTED_STATE_PAGES is cleared on VM-Exit
KVM: nSVM: Add CLASS()es for automagically handling local kvm_vcpu_map() usage
KVM: nSVM: Use CLASS(kvm_vcpu_map_local) for SMM VMCB mappings
KVM: nVMX: Use CLASS(kvm_vcpu_map_local_readonly) for MSR bitmap merging
KVM: PPC: Use CLASS(kvm_vcpu_map_local) to patch dcbz
KVM: Harden kvm_vcpu_map() against double-mapping and thus leaking references
KVM: x86: Extract VMX's unhandleable emulation check to common x86
KVM: nVMX: Synthesize SHUTDOWN on RSM if L2 requires emulation
KVM: x86: Rework kvm_x86_ops.vcpu_pre_run() into .vcpu_needs_initialization()
KVM: selftests: Use port 0x80 in invalid nVMX guest state test
KVM: selftests: Refactor invalid nVMX state test to prepare for RSM testcase
Tim Wiederhake (1):
KVM: x86: Replace delivery mode TODO with WARN_ON_ONCE
Yosry Ahmed (9):
KVM: nVMX: Always flush vpid02 on first use
KVM: nVM: Ensure INVVPID is emulated on the correct physical CPU
KVM: x86: Move enabling EFER.SVME and EFER.LMSLE to generic EFER setup
KVM: x86: Disallow EFER.LME and EFER.LMA if long mode is not supported
KVM: x86: Always initialize EFER reserved bits on vendor initialization
KVM: x86: Reverse the polarity of efer_reserved_bits
KVM: x86: Move supported EFER bits to kvm_caps
KVM: x86: Check EFER validity on KVM_SET_SREGS*
KVM: selftests: Extend set_sregs test to cover EFER
leixiang (1):
KVM: Remove kvm_debugfs_dir on kvm_init() error paths
arch/powerpc/kvm/book3s_pr.c | 11 +-
arch/x86/include/asm/cpufeatures.h | 10 +
arch/x86/include/asm/kvm-x86-nested-ops.h | 36 ++++
arch/x86/include/asm/kvm-x86-ops.h | 5 +-
arch/x86/include/asm/kvm_host.h | 212 ++-------------------
arch/x86/kvm/cpuid.c | 22 ++-
arch/x86/kvm/emulate.c | 49 +++--
arch/x86/kvm/hyperv.c | 95 +++++----
arch/x86/kvm/hyperv.h | 117 +++++++++++-
arch/x86/kvm/irq.h | 20 ++
arch/x86/kvm/lapic.c | 13 +-
arch/x86/kvm/lapic.h | 33 ++++
arch/x86/kvm/mmu.h | 11 +-
arch/x86/kvm/mmu/mmu.c | 2 +-
arch/x86/kvm/mmu/paging_tmpl.h | 2 +-
arch/x86/kvm/msrs.c | 21 +-
arch/x86/kvm/msrs.h | 5 +-
arch/x86/kvm/pmu.c | 12 +-
arch/x86/kvm/pmu.h | 4 +-
arch/x86/kvm/regs.c | 3 +-
arch/x86/kvm/regs.h | 38 ++++
arch/x86/kvm/smm.c | 4 +
arch/x86/kvm/svm/nested.c | 20 +-
arch/x86/kvm/svm/sev.c | 16 +-
arch/x86/kvm/svm/svm.c | 66 ++-----
arch/x86/kvm/svm/svm.h | 1 +
arch/x86/kvm/tss.h | 7 +
arch/x86/kvm/vmx/main.c | 24 ++-
arch/x86/kvm/vmx/nested.c | 81 ++++----
arch/x86/kvm/vmx/nested.h | 6 +-
arch/x86/kvm/vmx/pmu_intel.c | 1 -
arch/x86/kvm/vmx/tdx.c | 16 +-
arch/x86/kvm/vmx/vmx.c | 19 +-
arch/x86/kvm/vmx/x86_ops.h | 4 +-
arch/x86/kvm/x86.c | 110 ++++++++---
arch/x86/kvm/x86.h | 8 +-
arch/x86/kvm/xen.c | 43 +++--
include/linux/kvm_host.h | 26 +++
.../testing/selftests/kvm/include/x86/processor.h | 2 +
.../testing/selftests/kvm/x86/pmu_counters_test.c | 6 +-
.../selftests/kvm/x86/pmu_event_filter_test.c | 4 +-
tools/testing/selftests/kvm/x86/set_sregs_test.c | 81 ++++++--
.../kvm/x86/vmx_invalid_nested_guest_state.c | 118 ++++++++++--
virt/kvm/kvm_main.c | 12 ++
44 files changed, 857 insertions(+), 539 deletions(-)
create mode 100644 arch/x86/include/asm/kvm-x86-nested-ops.h
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: x86: MMU changes for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
` (4 preceding siblings ...)
2026-08-12 21:32 ` [GIT PULL] KVM: x86: Misc changes " Sean Christopherson
@ 2026-08-12 21:32 ` Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: Selftests change for 7.3, part 1 Sean Christopherson
` (4 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:32 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
Two fixes for bugs in the lockless aging code, plus a related hardening in the
same code.
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-mmu-7.3
for you to fetch changes up to fb25ee778aae357da2c1a8dc1d240b6061482454:
KVM: x86/mmu: Use CMPXCHG when clearing Accessed bit in the shadow MMU (2026-07-29 05:44:24 -0700)
----------------------------------------------------------------
KVM x86 MMU changes for 7.3
- Fix a bug where KVM would walk a newly created rmap without holding the rmap
lock (or mmu_lock) during aging.
- Fix a bug where aging TDP MMU SPTEs could clobber FROZEN SPTEs.
----------------------------------------------------------------
Phil Rosenthal (1):
KVM: x86/mmu: Consume the locked rmap value in the lockless rmap walk
Sean Christopherson (2):
KVM: x86/mmu: Use CMPXCHG when clearing Accessed bit in TDP MMU
KVM: x86/mmu: Use CMPXCHG when clearing Accessed bit in the shadow MMU
arch/x86/kvm/mmu/mmu.c | 58 +++++++++++++++++++++++++--------------------
arch/x86/kvm/mmu/tdp_iter.h | 7 ++++++
arch/x86/kvm/mmu/tdp_mmu.c | 20 +++++++---------
3 files changed, 48 insertions(+), 37 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: Selftests change for 7.3, part 1
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
` (5 preceding siblings ...)
2026-08-12 21:32 ` [GIT PULL] KVM: x86: MMU " Sean Christopherson
@ 2026-08-12 21:32 ` Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: KVM: Selftests change for 7.3, part 2 Sean Christopherson
` (3 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:32 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
This was supposed to be the "main" selftests pull request, but it ended up being
about half the size of the second pull request. Yosry's work on the nested
virtualization infrastructure is by far the most notable thing here.
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-selftests-7.3
for you to fetch changes up to b18ee21055a77eb1fb6070cb3f819cd3372c466e:
KVM: selftests: Add a test for KVM_CREATE_VM VM type enforcement (2026-07-31 15:47:25 -0700)
----------------------------------------------------------------
KVM selftests changes for 7.3, part 1
- Clean up nested SVM's handling of GPRs on L2<=>L1 transitions, reuse the
functionality for nested VMX, and drop the ucall hack that was fudging
around the lack of GPR switching on nVMX.
- Add a stress test to verify KVM doesn't clobber/drop #PF state, e.g. CR2,
across save/restore, including when L2 is active.
- Add a test to verify KVM_CREATE_VM accepts exactly what is reported by
KVM_CAP_VM_TYPES.
- Misc selftests fixes and cleanups
----------------------------------------------------------------
Hemanth Selam (1):
KVM: selftests: Add a test for KVM_CREATE_VM VM type enforcement
Sean Christopherson (2):
KVM: selftests: Drop superfluous use of pthread_attr_setaffinity_np()
KVM: selftests: Randomize pCPU in steal time test
Shivank Sharma (1):
KVM: selftests: Fix typos in x86 and riscv tests
Wang Yan (1):
KVM: selftests: Fix a spelling error in an xapic_ipi_test comment
Yosry Ahmed (13):
KVM: selftests: Use __stringify() instead of custom XSTR() macros
KVM: selftests: Fix RAX and RFLAGS VMCB offsets when running L2
KVM: selftests: Rework GPR registers switching for SVM (and fix offsets)
KVM: selftests: Handle rflags save/restore for SVM in guest_regs
KVM: selftests: Reuse GPR switching logic for nVMX
KVM: selftests: Drop HORRIFIC_L2_UCALL_CLOBBER_HACK
KVM: selftests: Add a blank line before logging assertion failures
KVM: selftests: Expose PTE masks to guests as part of an MMU
KVM: selftests: Do not intercept #PF by default in nVMX tests
KVM: selftests: Add basic stress test for save+restore and #PF handling
KVM: selftests: Trigger save+restore randomly in the #PF stress test
KVM: selftests: Support running stress save+restore and #PF test in L2
KVM: selftests: Trigger L2->L1 exits stress save+restore and #PF test
tools/testing/selftests/kvm/Makefile.kvm | 2 +
tools/testing/selftests/kvm/include/test_util.h | 1 +
tools/testing/selftests/kvm/include/x86/evmcs.h | 46 ++--
.../testing/selftests/kvm/include/x86/processor.h | 52 +++-
tools/testing/selftests/kvm/include/x86/vmx.h | 69 +++--
tools/testing/selftests/kvm/lib/assert.c | 2 +-
tools/testing/selftests/kvm/lib/x86/processor.c | 14 +
tools/testing/selftests/kvm/lib/x86/svm.c | 62 +++--
tools/testing/selftests/kvm/lib/x86/ucall.c | 32 +--
tools/testing/selftests/kvm/lib/x86/vmx.c | 2 +-
tools/testing/selftests/kvm/riscv/sbi_pmu_test.c | 4 +-
tools/testing/selftests/kvm/steal_time.c | 15 +-
tools/testing/selftests/kvm/vm_types_test.c | 48 ++++
.../selftests/kvm/x86/evmcs_smm_controls_test.c | 5 +-
.../testing/selftests/kvm/x86/fix_hypercall_test.c | 1 -
tools/testing/selftests/kvm/x86/hyperv_clock.c | 4 +-
tools/testing/selftests/kvm/x86/hyperv_evmcs.c | 2 +-
.../kvm/x86/save_restore_pf_stress_test.c | 288 +++++++++++++++++++++
tools/testing/selftests/kvm/x86/sev_init2_tests.c | 4 -
tools/testing/selftests/kvm/x86/smm_test.c | 5 +-
.../kvm/x86/vmx_invalid_nested_guest_state.c | 2 +-
tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 2 +-
22 files changed, 502 insertions(+), 160 deletions(-)
create mode 100644 tools/testing/selftests/kvm/vm_types_test.c
create mode 100644 tools/testing/selftests/kvm/x86/save_restore_pf_stress_test.c
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: x86: KVM: Selftests change for 7.3, part 2
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
` (6 preceding siblings ...)
2026-08-12 21:32 ` [GIT PULL] KVM: Selftests change for 7.3, part 1 Sean Christopherson
@ 2026-08-12 21:32 ` Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: SVM changes for 7.3 Sean Christopherson
` (2 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:32 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
Selftests, part 2. This was originally just the irq_test from David and Josh,
but I piled on fixes for hardware_disable_test and pmu_counters_test that rely
on the pRNG changes/enhancements.
There have been a few hiccups with linking to the VFIO selfest library, but I
think they're all sorted out. I.e. this should Just Work on your end.
As mentioned in the cover letter, this will conflict with part 1. Part 2 just
adds syscall wrappers, i.e. keep the functional test changes from part 1, but
use the newfangled wrappers from part 2.
diff --cc tools/testing/selftests/kvm/steal_time.c
index 92e7ffcd68b7,83a1e3aa15cf..6e9cc0e34ec0
--- tools/testing/selftests/kvm/steal_time.c
+++ tools/testing/selftests/kvm/steal_time.c
@@@ -553,11 -553,7 +548,11 @@@ int main(int ac, char **av
/* Steal time from the VCPU. The steal time thread has the same CPU affinity as the VCPUs. */
run_delay = get_run_delay();
- pthread_create(&thread, NULL, do_steal_time, NULL);
- pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset);
- kvm_pthread_create(&thread, &attr, do_steal_time, NULL);
++ kvm_pthread_create(&thread, NULL, do_steal_time, NULL);
++ kvm_pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset);
+ TEST_ASSERT(CPU_COUNT(&cpuset) == 1 && CPU_ISSET(cpu, &cpuset),
+ "Worker failed to inherit parent's CPU affinity");
+
do
sched_yield();
while (get_run_delay() - run_delay < MIN_RUN_DELAY_NS);
The following changes since commit 8cdeaa50eae8dad34885515f62559ee83e7e8dda:
Linux 7.2-rc2 (2026-07-05 14:44:06 -1000)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-selftests2-7.3
for you to fetch changes up to 4fe8b4e1545a0179ceebe098cce0dcfe9134a6cd:
KVM: selftests: Create one VM with many vCPUs for each major PMU counters test (2026-08-10 08:04:13 -0700)
----------------------------------------------------------------
KVM selftests changes for 7.3, part 2
- Fix several issues with seeding KVM's pRNG, and rework the pRNG APIs to that
the pRNG can be sanely used in host code, not just guest code.
- Add an IRQ test to validate virtual IRQ deliverty for IRQs wired up via
KVM_IRQFD + KVM_SET_GSI_ROUTING, with optional support for triggering IRQs
via writes to an assigned VFIO device.
- Add syscall wrappers to assert success on a variety of pthreads and CPU
affinity APIs.
- Set vCPU pthread affinity as early as possible to reduce contention issues
that were surfaced by PREEMPT_LAZY, which result in runtimes of over a
minute on large hosts, versus the expected ~5 seconds.
- Rework the PMU counters test to run each testcase using a single VM with
many vCPUs for each sub-testcase, instead of using a unique VM for each
sub-testcase. This cuts the runtime by ~20x.
----------------------------------------------------------------
David Matlack (11):
KVM: selftests: Build and link selftests/vfio/lib into KVM selftests
KVM: selftests: Add macros to read/write+sync to/from guest memory
KVM: selftests: Add an irqfd send+receive (and later IRQ bypass) test
KVM: selftests: Add helper to get host IRQ from device MSI-X for IRQ bypass test
KVM: selftests: Add VFIO device support to eventfd IRQ test
KVM: selftests: Verify interrupts are received when IRQ affinity changes in IRQ test
KVM: selftests: Add option to set empty routing between IRQs in eventfd IRQ test
KVM: selftests: Make number of IRQs configurable in IRQ test
KVM: selftests: Verify vCPU migration during IRQ delivery in IRQ test
KVM: selftests: Make number of vCPUs configurable in IRQ test
KVM: selftests: Add xAPIC support in eventfd IRQ test
Josh Hilke (6):
KVM: selftests: Rename guest_rng to kvm_rng
KVM: selftests: Add helper to generate random u64 in range [min,max]
KVM: selftests: Add a helper to set proc IRQ affinity for IRQ test
KVM: selftests: Add kvm_gettid() wrapper and convert users
KVM: selftests: Add kvm_sched_getaffinity() wrapper and convert users
KVM: selftests: Add a utility to pin a task to a random CPU, given a CPU set
Sean Christopherson (18):
KVM: selftests: Initialize the default/global pRNG during kvm_selftest_init()
KVM: selftests: Seed libc's RNG before using it to generate a seed for KVM's pRNG
KVM: selftests: Verify non-postable IRQ remapping in IRQ test
KVM: selftests: Only link to VFIO library on x86
KVM: selftests: Add a KVM syscall wrapper for sched_setaffinity()
KVM: selftests: Set threads CPU affinity before doing work in hardware disable test
KVM: selftests: Pre-set threads affinity in hardware disable test when possible
KVM: selftests: Return the target CPU from pin_task_to_random_cpu()
KVM: selftests: Extract picking of random CPU from cpu_set_t to separate API
KVM: selftests: Affine threads to random CPUs in hardware disable test
KVM: selftests: Drop unreachable, dead code from hardware disable test
KVM: selftests: Add KVM syscall wrapper for pthread_create()
KVM: selftests: Add KVM syscall wrappers for pthread_{cancel,join}()
KVM: selftests: Add helper APIs to cancel+join pthreads
KVM: selftests: Clean up global constants in hardware disable test
KVM: selftests: Add KVM syscall wrappers for pthread_{g,s}etaffinity_np()
KVM: selftests: Test one random GP counter in PMU arch events testcase
KVM: selftests: Create one VM with many vCPUs for each major PMU counters test
tools/testing/selftests/kvm/Makefile.kvm | 12 +++-
tools/testing/selftests/kvm/arch_timer.c | 20 ++----
tools/testing/selftests/kvm/arm64/arch_timer_edge_cases.c | 2 +-
tools/testing/selftests/kvm/arm64/vgic_irq.c | 14 ++--
tools/testing/selftests/kvm/arm64/vgic_lpi_stress.c | 8 +--
tools/testing/selftests/kvm/demand_paging_test.c | 2 +-
tools/testing/selftests/kvm/dirty_log_perf_test.c | 4 +-
tools/testing/selftests/kvm/dirty_log_test.c | 15 ++---
tools/testing/selftests/kvm/hardware_disable_test.c | 109 ++++++++++++++-----------------
tools/testing/selftests/kvm/include/kvm_syscalls.h | 55 ++++++++++++++++
tools/testing/selftests/kvm/include/kvm_util.h | 21 ++++++
tools/testing/selftests/kvm/include/proc_util.h | 11 ++++
tools/testing/selftests/kvm/include/test_util.h | 25 +++----
tools/testing/selftests/kvm/include/x86/kvm_util_arch.h | 4 +-
tools/testing/selftests/kvm/irq_test.c | 362 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/testing/selftests/kvm/irqfd_test.c | 4 +-
tools/testing/selftests/kvm/kvm_page_table_test.c | 6 +-
tools/testing/selftests/kvm/lib/assert.c | 8 +--
tools/testing/selftests/kvm/lib/kvm_util.c | 52 +++++++++++----
tools/testing/selftests/kvm/lib/memstress.c | 12 ++--
tools/testing/selftests/kvm/lib/proc_util.c | 54 ++++++++++++++++
tools/testing/selftests/kvm/lib/test_util.c | 41 ++++++++++--
tools/testing/selftests/kvm/lib/userfaultfd_util.c | 7 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 4 +-
tools/testing/selftests/kvm/mmu_stress_test.c | 19 ++----
tools/testing/selftests/kvm/pre_fault_memory_test.c | 4 +-
tools/testing/selftests/kvm/rseq_test.c | 16 ++---
tools/testing/selftests/kvm/s390/memop.c | 4 +-
tools/testing/selftests/kvm/set_memory_region_test.c | 6 +-
tools/testing/selftests/kvm/steal_time.c | 26 +++-----
tools/testing/selftests/kvm/x86/hyperv_ipi.c | 32 ++-------
tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c | 30 ++-------
tools/testing/selftests/kvm/x86/pmu_counters_test.c | 227 ++++++++++++++++++++++++++++++++++++----------------------------
tools/testing/selftests/kvm/x86/private_mem_conversions_test.c | 4 +-
tools/testing/selftests/kvm/x86/private_mem_kvm_exits_test.c | 7 +-
tools/testing/selftests/kvm/x86/recalc_apic_map_test.c | 5 +-
tools/testing/selftests/kvm/x86/sev_dbg_test.c | 2 +-
tools/testing/selftests/kvm/x86/sev_migrate_tests.c | 4 +-
tools/testing/selftests/kvm/x86/sync_regs_test.c | 5 +-
tools/testing/selftests/kvm/x86/tsc_scaling_sync.c | 4 +-
tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 31 ++-------
tools/testing/selftests/kvm/x86/xen_shinfo_test.c | 10 +--
42 files changed, 883 insertions(+), 405 deletions(-)
create mode 100644 tools/testing/selftests/kvm/include/proc_util.h
create mode 100644 tools/testing/selftests/kvm/irq_test.c
create mode 100644 tools/testing/selftests/kvm/lib/proc_util.c
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: x86: SVM changes for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
` (7 preceding siblings ...)
2026-08-12 21:32 ` [GIT PULL] KVM: x86: KVM: Selftests change for 7.3, part 2 Sean Christopherson
@ 2026-08-12 21:32 ` Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: VMX " Sean Christopherson
2026-08-14 19:25 ` [GIT PULL] KVM: x86 pull requests " David Woodhouse
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:32 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
A somewhat random collection of fixes. Note, dropping FOLL_WRITE is safe as
GUP breaks CoW for FOLL_PIN. This is explained in the changelog, but I figured
I'd call it out here too in case you have the same knee-jerk reaction I had.
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-svm-7.3
for you to fetch changes up to ec9a16c6aeba8e19ce98c58a1ac255681a4dd0ac:
KVM: SVM: Always intercept ICEBP to workaround AMD ICEBP+TASK_SWITCH flaws (2026-07-24 13:15:14 -0700)
----------------------------------------------------------------
KVM SVM changes for 7.3
- Remove a dying VM from the GA Log notifier list before the VM is actually
destroyed, to fix a potential use-after-free.
- Don't pass FOLL_WRITE when registering encrypted memory regions, i.e. when
pinning SEV/SEV-ES guest memory, to fix a regression with file-backed memory
introduced by KVM's (correct) usage of long-term pins.
- Allocate full pages for SEV/SEV-ES {DE,EN}CRYPT ops on SNP-enabled hosts to
fix a data corruption issue due to the PSP driver assigning to-be-written
pages to firmware (as required by the SNP specs).
- Unconditionally intercept ICBEP so that KVM generates the correct guest RIP
when handling an ICEBP-induced TASK_SWITCH #VMEXIT.
----------------------------------------------------------------
David Woodhouse (1):
KVM: SVM: Always intercept ICEBP to workaround AMD ICEBP+TASK_SWITCH flaws
Pankaj Gupta (1):
KVM: SEV: Drop FOLL_WRITE for encrypted region registration
Qiang Ma (1):
KVM: SVM: Remove redundant ret = 0 in svm_set_nested_state
Sean Christopherson (4):
KVM: SVM: Make kvm_x86_ops.vcpu_precreate() hook fully AVIC specific
KVM: SVM: Do all per-VM AVIC initialization during vCPU precreation phase
KVM: SVM: Remove VM from the GA Log notifier list before VM destruction
KVM: SEV: Allocate full pages for {DE,EN}CRYPT ops on SNP-enabled hosts
arch/x86/kvm/svm/avic.c | 96 +++++++++++++++++++++++++++++++----------------
arch/x86/kvm/svm/nested.c | 1 -
arch/x86/kvm/svm/sev.c | 29 ++++++++++++--
arch/x86/kvm/svm/svm.c | 34 +++++++++++------
arch/x86/kvm/svm/svm.h | 4 +-
5 files changed, 113 insertions(+), 51 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [GIT PULL] KVM: x86: VMX changes for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
` (8 preceding siblings ...)
2026-08-12 21:32 ` [GIT PULL] KVM: x86: SVM changes for 7.3 Sean Christopherson
@ 2026-08-12 21:32 ` Sean Christopherson
2026-08-14 19:25 ` [GIT PULL] KVM: x86 pull requests " David Woodhouse
10 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-12 21:32 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: kvm, linux-kernel, Sean Christopherson
Like the SVM changes, a small batch of fixes and cleanups.
The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-vmx-7.3
for you to fetch changes up to 0aaedada606aef1732cf0e123403a1e8b8b38c0d:
KVM: VMX: Cap VMX preemption timer to work around Intel erratum (2026-07-31 13:41:56 -0700)
----------------------------------------------------------------
KVM VMX changes for 7.3
- Service local TLB flushes on a failed nested VM-Enter to fix a bug where KVM
could miss a TLB on a future, successful VM-Enter with the same L2 VPID.
- Cap the maximum value shoved into the VMX Preemption Timer to workaround an
erratum that affects all existing Intel CPUs that support CPUID 0x15.
----------------------------------------------------------------
Hao Zhang (1):
KVM: VMX: Use cached vcpu_vmx pointer in MSR and segment helpers
Jim Mattson (1):
KVM: VMX: Cap VMX preemption timer to work around Intel erratum
Sean Christopherson (1):
KVM: VMX: Bury all of the VMX preemption timer code under CONFIG_X86_64=y
Yosry Ahmed (1):
KVM: nVMX: Service local TLB flushes on failed nested VM-Enter
arch/x86/kvm/vmx/nested.c | 8 +++
arch/x86/kvm/vmx/vmx.c | 171 +++++++++++++++++++++++++++++-----------------
2 files changed, 117 insertions(+), 62 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [GIT PULL] KVM: x86 pull requests for 7.3
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
` (9 preceding siblings ...)
2026-08-12 21:32 ` [GIT PULL] KVM: x86: VMX " Sean Christopherson
@ 2026-08-14 19:25 ` David Woodhouse
2026-08-15 7:55 ` Paolo Bonzini
10 siblings, 1 reply; 15+ messages in thread
From: David Woodhouse @ 2026-08-14 19:25 UTC (permalink / raw)
To: seanjc; +Cc: kvm, linux-kernel, pbonzini
[-- Attachment #1: Type: text/plain, Size: 193 bytes --]
This was intended as the safe stable bugfix part, split out from all
the RCU and rwlock RT fun that can come later:
https://lore.kernel.org/all/20260811094829.98794-1-dwmw2@infradead.org/
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 6179 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [GIT PULL] KVM: x86 pull requests for 7.3
2026-08-14 19:25 ` [GIT PULL] KVM: x86 pull requests " David Woodhouse
@ 2026-08-15 7:55 ` Paolo Bonzini
2026-08-15 10:29 ` David Woodhouse
0 siblings, 1 reply; 15+ messages in thread
From: Paolo Bonzini @ 2026-08-15 7:55 UTC (permalink / raw)
To: David Woodhouse; +Cc: Sean Christopherson, kvm, Kernel Mailing List, Linux
Il ven 14 ago 2026, 21:25 David Woodhouse <dwmw2@infradead.org> ha scritto:
>
> This was intended as the safe stable bugfix part, split out from all
> the RCU and rwlock RT fun that can come later:
>
> https://lore.kernel.org/all/20260811094829.98794-1-dwmw2@infradead.org/
Ok, I will take a look.
Paolo
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [GIT PULL] KVM: x86 pull requests for 7.3
2026-08-15 7:55 ` Paolo Bonzini
@ 2026-08-15 10:29 ` David Woodhouse
2026-08-17 14:40 ` Sean Christopherson
0 siblings, 1 reply; 15+ messages in thread
From: David Woodhouse @ 2026-08-15 10:29 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Sean Christopherson, kvm, Kernel Mailing List, Linux
[-- Attachment #1: Type: text/plain, Size: 725 bytes --]
On Sat, 2026-08-15 at 09:55 +0200, Paolo Bonzini wrote:
> Il ven 14 ago 2026, 21:25 David Woodhouse <dwmw2@infradead.org> ha scritto:
> >
> > This was intended as the safe stable bugfix part, split out from all
> > the RCU and rwlock RT fun that can come later:
> >
> > https://lore.kernel.org/all/20260811094829.98794-1-dwmw2@infradead.org/
>
> Ok, I will take a look.
Thanks. Although that nudge was directed more at Sean than you.
I wouldn't necessarily want it to go forward *without* Sean's ack, but
those commits were deliberately split out as the ones I genuinely
believe to be simple uncontroversial fixes, with the fun stuff held
back for later. A couple of these ones are even actually Sean's.
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 6179 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [GIT PULL] KVM: x86 pull requests for 7.3
2026-08-15 10:29 ` David Woodhouse
@ 2026-08-17 14:40 ` Sean Christopherson
0 siblings, 0 replies; 15+ messages in thread
From: Sean Christopherson @ 2026-08-17 14:40 UTC (permalink / raw)
To: David Woodhouse; +Cc: Paolo Bonzini, kvm, Kernel Mailing List, Linux
On Sat, Aug 15, 2026, David Woodhouse wrote:
> On Sat, 2026-08-15 at 09:55 +0200, Paolo Bonzini wrote:
> > Il ven 14 ago 2026, 21:25 David Woodhouse <dwmw2@infradead.org> ha scritto:
> > >
> > > This was intended as the safe stable bugfix part, split out from all
> > > the RCU and rwlock RT fun that can come later:
> > >
> > > https://lore.kernel.org/all/20260811094829.98794-1-dwmw2@infradead.org/
> >
> > Ok, I will take a look.
>
> Thanks. Although that nudge was directed more at Sean than you.
>
> I wouldn't necessarily want it to go forward *without* Sean's ack, but
> those commits were deliberately split out as the ones I genuinely
> believe to be simple uncontroversial fixes, with the fun stuff held
> back for later. A couple of these ones are even actually Sean's.
Those changes are very much on my radar, the latest version simply came in too
late for 7.3.
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-08-17 14:40 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-12 21:31 [GIT PULL] KVM: x86 pull requests for 7.3 Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: x86: Xen clock/timekeeping changes " Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: guest_memfd and x86 CoCo " Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: Generic and documentation updates " Sean Christopherson
2026-08-12 21:31 ` [GIT PULL] KVM: MAINTAINERS " Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: Misc changes " Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: MMU " Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: Selftests change for 7.3, part 1 Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: KVM: Selftests change for 7.3, part 2 Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: SVM changes for 7.3 Sean Christopherson
2026-08-12 21:32 ` [GIT PULL] KVM: x86: VMX " Sean Christopherson
2026-08-14 19:25 ` [GIT PULL] KVM: x86 pull requests " David Woodhouse
2026-08-15 7:55 ` Paolo Bonzini
2026-08-15 10:29 ` David Woodhouse
2026-08-17 14:40 ` Sean Christopherson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox