linux/tools/testing/selftests/kvm
Linus Torvalds 0e8863244e ARM:
* Rework heuristics for resolving the fault IPA (HPFAR_EL2 v. re-walk
   stage-1 page tables) to align with the architecture. This avoids
   possibly taking an SEA at EL2 on the page table walk or using an
   architecturally UNKNOWN fault IPA.
 
 * Use acquire/release semantics in the KVM FF-A proxy to avoid reading
   a stale value for the FF-A version.
 
 * Fix KVM guest driver to match PV CPUID hypercall ABI.
 
 * Use Inner Shareable Normal Write-Back mappings at stage-1 in KVM
   selftests, which is the only memory type for which atomic
   instructions are architecturally guaranteed to work.
 
 s390:
 
 * Don't use %pK for debug printing and tracepoints.
 
 x86:
 
 * Use a separate subclass when acquiring KVM's per-CPU posted interrupts
   wakeup lock in the scheduled out path, i.e. when adding a vCPU on
   the list of vCPUs to wake, to workaround a false positive deadlock.
   The schedule out code runs with a scheduler lock that the wakeup
   handler takes in the opposite order; but it does so with IRQs disabled
   and cannot run concurrently with a wakeup.
 
 * Explicitly zero-initialize on-stack CPUID unions
 
 * Allow building irqbypass.ko as as module when kvm.ko is a module
 
 * Wrap relatively expensive sanity check with KVM_PROVE_MMU
 
 * Acquire SRCU in KVM_GET_MP_STATE to protect guest memory accesses
 
 selftests:
 
 * Add more scenarios to the MONITOR/MWAIT test.
 
 * Add option to rseq test to override /dev/cpu_dma_latency
 
 * Bring list of exit reasons up to date
 
 * Cleanup Makefile to list once tests that are valid on all architectures
 
 Other:
 
 * Documentation fixes
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmf083IUHHBib256aW5p
 QHJlZGhhdC5jb20ACgkQv/vSX3jHroN1dgf/QwfpZcHoMNQSnrc1jMy2LHrArln2
 XfmsOGZTU7kyoLQsLWGAPNocOveGdiemTDsj5ZXoNMnqV8hCBr+tZuv2gWI1rr/o
 kiGerdIgSZ9piTjBlJkVAaOzbWhg2DUnr7qVVzEzFY9+rPNyQ81vgAfU7h56KhYB
 optecozmBrHHAxvQZwmPeL9UyPWFjOF1BY/8LTMx7X+aVuCX6qx1JqO3a3ylAw4J
 tGXv6qFJfuCnu1d1b4X0ILce0iMUTOjQzvTcIm+BKjYycecl+3j1aczC/BOorIgc
 mf0+XeauhcTduK73pirnvx2b05eOxntgkOpwJytO2RP6pE0uK+2Th/C3Qg==
 =ba/Y
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull kvm fixes from Paolo Bonzini:
 "ARM:

   - Rework heuristics for resolving the fault IPA (HPFAR_EL2 v. re-walk
     stage-1 page tables) to align with the architecture. This avoids
     possibly taking an SEA at EL2 on the page table walk or using an
     architecturally UNKNOWN fault IPA

   - Use acquire/release semantics in the KVM FF-A proxy to avoid
     reading a stale value for the FF-A version

   - Fix KVM guest driver to match PV CPUID hypercall ABI

   - Use Inner Shareable Normal Write-Back mappings at stage-1 in KVM
     selftests, which is the only memory type for which atomic
     instructions are architecturally guaranteed to work

  s390:

   - Don't use %pK for debug printing and tracepoints

  x86:

   - Use a separate subclass when acquiring KVM's per-CPU posted
     interrupts wakeup lock in the scheduled out path, i.e. when adding
     a vCPU on the list of vCPUs to wake, to workaround a false positive
     deadlock. The schedule out code runs with a scheduler lock that the
     wakeup handler takes in the opposite order; but it does so with
     IRQs disabled and cannot run concurrently with a wakeup

   - Explicitly zero-initialize on-stack CPUID unions

   - Allow building irqbypass.ko as as module when kvm.ko is a module

   - Wrap relatively expensive sanity check with KVM_PROVE_MMU

   - Acquire SRCU in KVM_GET_MP_STATE to protect guest memory accesses

  selftests:

   - Add more scenarios to the MONITOR/MWAIT test

   - Add option to rseq test to override /dev/cpu_dma_latency

   - Bring list of exit reasons up to date

   - Cleanup Makefile to list once tests that are valid on all
     architectures

  Other:

   - Documentation fixes"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (26 commits)
  KVM: arm64: Use acquire/release to communicate FF-A version negotiation
  KVM: arm64: selftests: Explicitly set the page attrs to Inner-Shareable
  KVM: arm64: selftests: Introduce and use hardware-definition macros
  KVM: VMX: Use separate subclasses for PI wakeup lock to squash false positive
  KVM: VMX: Assert that IRQs are disabled when putting vCPU on PI wakeup list
  KVM: x86: Explicitly zero-initialize on-stack CPUID unions
  KVM: Allow building irqbypass.ko as as module when kvm.ko is a module
  KVM: x86/mmu: Wrap sanity check on number of TDP MMU pages with KVM_PROVE_MMU
  KVM: selftests: Add option to rseq test to override /dev/cpu_dma_latency
  KVM: x86: Acquire SRCU in KVM_GET_MP_STATE to protect guest memory accesses
  Documentation: kvm: remove KVM_CAP_MIPS_TE
  Documentation: kvm: organize capabilities in the right section
  Documentation: kvm: fix some definition lists
  Documentation: kvm: drop "Capability" heading from capabilities
  Documentation: kvm: give correct name for KVM_CAP_SPAPR_MULTITCE
  Documentation: KVM: KVM_GET_SUPPORTED_CPUID now exposes TSC_DEADLINE
  selftests: kvm: list once tests that are valid on all architectures
  selftests: kvm: bring list of exit reasons up to date
  selftests: kvm: revamp MONITOR/MWAIT tests
  KVM: arm64: Don't translate FAR if invalid/unsafe
  ...
2025-04-08 13:47:55 -07:00
..
arm64 KVM: arm64: selftests: Introduce and use hardware-definition macros 2025-04-06 11:13:41 -07:00
include KVM/arm64: First batch of fixes for 6.15 2025-04-08 05:49:31 -04:00
lib KVM/arm64: First batch of fixes for 6.15 2025-04-08 05:49:31 -04:00
riscv RISC-V Patches for the 6.15 Merge Window, Part 1 2025-04-04 09:49:17 -07:00
s390 KVM: selftests: Fix spelling mistake "initally" -> "initially" 2025-02-04 11:15:24 -05:00
x86 selftests: kvm: revamp MONITOR/MWAIT tests 2025-04-04 06:20:27 -04:00
.gitignore KVM: selftests: Provide empty 'all' and 'clean' targets for unsupported ARCHs 2024-12-18 14:15:03 -08:00
Makefile KVM: selftests: Override ARCH for x86_64 instead of using ARCH_DIR 2024-12-18 14:15:05 -08:00
Makefile.kvm selftests: kvm: list once tests that are valid on all architectures 2025-04-04 06:23:25 -04:00
access_tracking_perf_test.c KVM: selftests: Remove unneeded semicolon 2025-01-08 12:04:43 -08:00
arch_timer.c
coalesced_io_test.c KVM: selftests: Add a test for coalesced MMIO (and PIO on x86) 2024-08-29 19:38:33 -07:00
config
demand_paging_test.c KVM selftests treewide updates for 6.10: 2024-05-12 03:18:11 -04:00
dirty_log_perf_test.c KVM: selftests: Use canonical $(ARCH) paths for KVM selftests directories 2024-12-18 14:15:04 -08:00
dirty_log_test.c KVM: selftests: Allow running a single iteration of dirty_log_test 2025-02-12 09:00:56 -08:00
get-reg-list.c
guest_memfd_test.c KVM: selftests: fix unintentional noop test in guest_memfd_test.c 2024-11-04 21:10:28 -08:00
guest_print_test.c KVM: selftests: Open code vcpu_run() equivalent in guest_printf test 2024-08-29 16:25:06 -07:00
hardware_disable_test.c KVM: selftests: Remove unused macro in the hardware disable test 2024-10-30 13:51:46 -07:00
kvm_binary_stats_test.c
kvm_create_max_vcpus.c KVM: selftests: Adjust number of files rlimit for all "standard" VMs 2025-02-14 07:02:12 -08:00
kvm_page_table_test.c
memslot_modification_stress_test.c KVM: selftests: Fix build on architectures other than x86_64 2024-10-01 11:07:26 -04:00
memslot_perf_test.c KVM: selftests: memslot_perf_test: increase guest sync timeout 2024-11-04 21:04:10 -08:00
mmu_stress_test.c KVM: selftests: Ensure all vCPUs hit -EFAULT during initial RO stage 2025-03-03 07:37:28 -08:00
pre_fault_memory_test.c KVM: selftests: x86: Add test for KVM_PRE_FAULT_MEMORY 2024-07-12 11:18:27 -04:00
rseq_test.c KVM: selftests: Add option to rseq test to override /dev/cpu_dma_latency 2025-04-04 07:07:39 -04:00
set_memory_region_test.c KVM: selftests: Add test case for MMIO during vectoring on x86 2024-12-18 15:14:47 -08:00
settings
steal_time.c KVM: selftests: Return a value from vcpu_get_reg() instead of using an out-param 2024-12-18 14:14:14 -08:00
system_counter_offset_test.c