[PATCH 0/5] KVM: selftests: Reserve memslot 1 for ucall MMIO

From: Tharit Tangkijwanichakul

Date: Sat Oct 17 2026 - 07:02:38 EST


This series addresses the TODO in __vm_create() to reserve memslot 1
for the ucall MMIO region. It introduces a shared base for test
memslots, migrates existing test users, and adds a read-only region to
prevent overlapping allocations.

A regression test verifies overlap rejection and continued ucall
operation.

Testing:
- Intel Core i5-10210U and Rockchip RK3588 (arm64).

These tests are changed but not tested:
- arm64/sea_to_user.c: not enough memory allocation.
- x86/nested_vmsave_vmload_test.c: requires X86_FEATURE_SVM.
- riscv/sbi_pmu_test.c: riscv hardware unavailability.

The following test failures reproduce on both the unmodified base
<8edffbc1f6272db167037e1a8c49b99e9cd04803> with host kernel
7.3.0-rc1-gd4b7fb647204 on RK3588 and with this series applied:
- arm64/vgic_its_save.c
- arm64/hypercalls.c

These failures are unchanged by this series.

Tharit Tangkijwanichakul (5):
KVM: selftests: Introduce a shared base for test memslots
KVM: selftests: Use the shared memslot base in memslot_perf_test
KVM: selftests: Use the shared memslot base in memstress
KVM: selftests: Reserve memslot 1 for the ucall MMIO address
KVM: selftests: Test protection of the ucall MMIO region

tools/testing/selftests/kvm/Makefile.kvm | 1 +
.../testing/selftests/kvm/arm64/hypercalls.c | 3 +-
.../testing/selftests/kvm/arm64/sea_to_user.c | 2 +-
.../kvm/arm64/stage2_block_transitions.c | 2 +-
.../selftests/kvm/arm64/vgic_its_save.c | 2 +-
.../selftests/kvm/arm64/vgic_lpi_stress.c | 2 +-
tools/testing/selftests/kvm/dirty_log_test.c | 2 +-
.../testing/selftests/kvm/guest_memfd_test.c | 2 +-
.../testing/selftests/kvm/include/kvm_util.h | 1 +
.../testing/selftests/kvm/include/memstress.h | 2 +-
.../selftests/kvm/kvm_page_table_test.c | 2 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 19 ++++--
.../testing/selftests/kvm/memslot_perf_test.c | 62 +++++++++++--------
tools/testing/selftests/kvm/mmu_stress_test.c | 2 +-
.../selftests/kvm/reserved_slot_test.c | 61 ++++++++++++++++++
.../selftests/kvm/riscv/sbi_pmu_test.c | 3 +-
tools/testing/selftests/kvm/steal_time.c | 3 +-
.../selftests/kvm/x86/nested_dirty_log_test.c | 2 +-
.../kvm/x86/nested_vmsave_vmload_test.c | 2 +-
19 files changed, 128 insertions(+), 47 deletions(-)
create mode 100644 tools/testing/selftests/kvm/reserved_slot_test.c

--
2.53.0