[GIT PULL] KVM: Selftests changes for 6.15, part 2
From: Sean Christopherson
Date: Tue Mar 18 2025 - 14:06:11 EST
Second selftests pull requests, i.e. the "real" 6.15 selftest pull request :-)
The following changes since commit a64dcfb451e254085a7daee5fe51bf22959d52d3:
Linux 6.14-rc2 (2025-02-09 12:45:03 -0800)
are available in the Git repository at:
https://github.com/kvm-x86/linux.git tags/kvm-x86-selftests-6.15
for you to fetch changes up to 62838fa5eade1b23d546e81e7aab6d4c92ec12f2:
KVM: selftests: Relax assertion on HLT exits if CPU supports Idle HLT (2025-02-28 15:42:28 -0800)
----------------------------------------------------------------
KVM selftests changes for 6.15, part 2
- Fix a variety of flaws, bugs, and false failures/passes dirty_log_test, and
improve its coverage by collecting all dirty entries on each iteration.
- Fix a few minor bugs related to handling of stats FDs.
- Add infrastructure to make vCPU and VM stats FDs available to tests by
default (open the FDs during VM/vCPU creation).
- Relax an assertion on the number of HLT exits in the xAPIC IPI test when
running on a CPU that supports AMD's Idle HLT (which elides interception of
HLT if a virtual IRQ is pending and unmasked).
- Misc cleanups and fixes.
----------------------------------------------------------------
Colin Ian King (1):
KVM: selftests: Fix spelling mistake "UFFDIO_CONINUE" -> "UFFDIO_CONTINUE"
Maxim Levitsky (2):
KVM: selftests: Support multiple write retires in dirty_log_test
KVM: selftests: Limit dirty_log_test's s390x workaround to s390x
Sean Christopherson (28):
KVM: selftests: Actually emit forced emulation prefix for kvm_asm_safe_fep()
KVM: selftests: Sync dirty_log_test iteration to guest *before* resuming
KVM: selftests: Drop signal/kick from dirty ring testcase
KVM: selftests: Drop stale srandom() initialization from dirty_log_test
KVM: selftests: Precisely track number of dirty/clear pages for each iteration
KVM: selftests: Read per-page value into local var when verifying dirty_log_test
KVM: selftests: Continuously reap dirty ring while vCPU is running
KVM: selftests: Honor "stop" request in dirty ring test
KVM: selftests: Keep dirty_log_test vCPU in guest until it needs to stop
KVM: selftests: Post to sem_vcpu_stop if and only if vcpu_stop is true
KVM: selftests: Use continue to handle all "pass" scenarios in dirty_log_test
KVM: selftests: Print (previous) last_page on dirty page value mismatch
KVM: selftests: Collect *all* dirty entries in each dirty_log_test iteration
KVM: sefltests: Verify value of dirty_log_test last page isn't bogus
KVM: selftests: Ensure guest writes min number of pages in dirty_log_test
KVM: selftests: Tighten checks around prev iter's last dirty page in ring
KVM: selftests: Set per-iteration variables at the start of each iteration
KVM: selftests: Fix an off-by-one in the number of dirty_log_test iterations
KVM: selftests: Allow running a single iteration of dirty_log_test
KVM: selftests: Fix mostly theoretical leak of VM's binary stats FD
KVM: selftests: Close VM's binary stats FD when releasing VM
KVM: selftests: Assert that __vm_get_stat() actually finds a stat
KVM: selftests: Macrofy vm_get_stat() to auto-generate stat name string
KVM: selftests: Add struct and helpers to wrap binary stats cache
KVM: selftests: Get VM's binary stats FD when opening VM
KVM: selftests: Adjust number of files rlimit for all "standard" VMs
KVM: selftests: Add infrastructure for getting vCPU binary stats
KVM: selftests: Relax assertion on HLT exits if CPU supports Idle HLT
tools/testing/selftests/kvm/dirty_log_test.c | 521 ++++++++++-----------
tools/testing/selftests/kvm/include/kvm_util.h | 33 +-
.../testing/selftests/kvm/include/x86/processor.h | 3 +-
tools/testing/selftests/kvm/kvm_create_max_vcpus.c | 28 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 114 +++--
tools/testing/selftests/kvm/lib/userfaultfd_util.c | 2 +-
.../kvm/x86/dirty_log_page_splitting_test.c | 6 +-
.../testing/selftests/kvm/x86/nx_huge_pages_test.c | 4 +-
tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 13 +
9 files changed, 369 insertions(+), 355 deletions(-)