[kvm-unit-tests GIT PULL] x86: Misc changes

From: Sean Christopherson

Date: Fri Oct 02 2026 - 17:35:02 EST


Please pull a random set of x86 changes. This is basically the set of things
that I could quickly/easily review, and/or were causing problems in my test
setup.

Note, "x86/run: Use separate "-accel" option to configure the accelerator"
breaks the intel_iommu test if KUT is run with ACCEL="kvm,kernel-irqchip=on"
due to the test requiring a split-IRQCHIP via "-M q35,kernel-irqchip=split".
I'm pretty sure I'm the only person that does ACCEL="kvm,kernel-irqchip=on",
and I want to unblock running KUT with notify-vmexit enabled.

Thanks!

The following changes since commit 5a221342a025948fa7d84f0c404748f6ba57f3ad:

svm: Add SMI handler for svm_intr_intercept_mix_smi test (2026-09-08 15:33:43 +0200)

are available in the Git repository at:

https://github.com/kvm-x86/kvm-unit-tests.git tags/kvm-x86-2026.10.02

for you to fetch changes up to 1aaec1f90618ef3cb7a4661bbec2228456050f7f:

x86/pmu: Relax overcounting checks to allow for 1 VM-Exit per 5000 nops (2026-10-02 09:22:08 -0700)

----------------------------------------------------------------
KVM-Unit-Tests x86 changes:

- Disable virtual PMU support when running the MSR tests as newer versions of
QEMU will log an error when trying to create a vPMU across vendors (the test
runs with vendor=GenuineIntel to validate SYSENTER MSRs "fun").

- Play nice with VMMs (or hardware) that strictly adhere to the PCI spec when
handling 0xCF8/0xCFC accesses.

- Add a PV IPI testcase to verify KVM can deliver PV IPIs to vCPUs with APIC
ID 255.

- Finally add better backtraces for leaf functions on x86.

- Add a test to verify KVM correctly handles ICEBP+TASK_SWITCH.

- Add a testcase to validate KVM's handling of DEBUGCTL on nVMX transitions.

- Use "-accel" instead of "-machine" to set the accelerator.

- Add test coverage for active-low DR6 bits, and for Bus Lock Detect #DBs.

- Apply the "PMU instructions/branches overcount" errata to all AMD CPUs and
massage the guardrails to get the tests passing on modern CPUs without
completely sacrificing test coverage.

- Misc cleanups and fixes.

----------------------------------------------------------------
Chenyi Qiang (2):
nVMX: Remove the IA32_DEBUGCTLMSR access in debugctls test
x86/vmx: (Re)Add a nVMX test to validate load/save of DEBUGCTL

Igor Mammedov (1):
x86/svm: work around Virtual VMLOAD/VMSAVE bug on Naples and Rome

Irene Wang (1):
x86: pci: Support unaligned register access in PCI config read/write

Jeremiah McReynolds (1):
x86/msr: Disable PMU for MSR tests

Jim Mattson (5):
x86/apic: Skip PV IPI test if feature is not supported
lib: Hoist test selection logic to library for code reuse
x86/apic: Support subtest selection via command line
x86/apic: Introduce send_pv_ipi()
x86/apic: Add a test for a PV IPI boundary condition

Mathias Krause (1):
x86: Better backtraces for leaf functions

Paolo Bonzini (1):
taskswitch: add test for ICEBP delivery via taskgate

Sandipan Das (1):
x86/pmu: Check for PMIs irrespective of PMU version

Sean Christopherson (6):
x86/debug: Set all active-low DR6 bits when resetting DR6
x86/debug: Run the "debug" test with the host CPU model
x86/debug: Verify that KVM correctly emulates DR6 active-low and fixed-1 semantics
x86/debug: Add actual test coverage for Bus Lock Detect #DBs
x86/pmu: Treat all AMD CPUs as having instruction/branch overcount errata
x86/pmu: Relax overcounting checks to allow for 1 VM-Exit per 5000 nops

Xiaoyao Li (2):
x86: Use "accel" to require KVM for "cet" and "lam" testcases
x86/run: Use separate "-accel" option to configure the accelerator

Yexuan Yang (1):
x86/lam: Allocate test page from AREA_LOW instead of AREA_NORMAL

lib/argv.c | 14 ++++
lib/argv.h | 3 +
lib/x86/asm/pci.h | 23 ++++--
lib/x86/msr.h | 1 +
lib/x86/pmu.c | 7 ++
lib/x86/processor.h | 1 +
x86/Makefile.common | 22 ++++++
x86/apic.c | 144 +++++++++++++++++++++++++++++--------
x86/debug.c | 162 ++++++++++++++++++++++++++++++++----------
x86/lam.c | 6 +-
x86/pmu.c | 26 ++++---
x86/realmode.c | 4 ++
x86/run | 2 +-
x86/svm.c | 26 +++++++
x86/taskswitch.c | 46 +++++++++++-
x86/unittests.cfg | 24 +++++--
x86/vmexit.c | 15 +---
x86/vmx_tests.c | 199 +++++++++++++++++++++++++++++++++++++++++++---------
18 files changed, 580 insertions(+), 145 deletions(-)