From nobody Wed Dec 17 15:52:37 2025 Received: from out-180.mta1.migadu.com (out-180.mta1.migadu.com [95.215.58.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 930382F99BE for ; Tue, 21 Oct 2025 07:49:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761032942; cv=none; b=V3veMxOzYfWyIxy1+gOysbXBNF/3+ZaATfekR5CitF34yUPOZqnId7liP9TIznMjYKvlQs+B7Hc7k4hPOVoPwt34hkzzcUpFhgmeyAGq6hJxyO9pZVtvJF2iviYzbeOeQlopVWzFtAoOlrie5OQQbbaqcU1cFt14pkzYbRRp3EU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761032942; c=relaxed/simple; bh=EmznAr8tmGfsTdBHmekvfG9pkapYRSGehWhfgV4sp90=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H3Rqz5yIw0M/UNbuGEUA1Q4r0oBJKiNDk6U1gSMXYH0k6wdipumQM+jeRy3i8gBnqefGT2OvL/ihNKx1lMqX4mPPMHiJGl5HAcCFpyqvW5+jdF4JW5k+MqPVN280RtgpJDQ4ZYe7CtBY/BCneJTukzakea65oPmsUQKfI2J4G8w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=pKVYg/tj; arc=none smtp.client-ip=95.215.58.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="pKVYg/tj" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1761032938; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nN4L1HU/8fM9rmYn5HhmuTZwVxQlkWZRotXsVNYVoAk=; b=pKVYg/tjR1tdfXX+FDnTt89yFzICj/HM64BFPiG6eQ+dQLU1AmXdyQUqQ356KVHr8UQdAp 9uHmlte6E/j1ZFc7aYVQSm3Lf0lm6iBMlgGTaqJdidJYaDEZPQy+b1DksFuXLJXmm3YUO5 JxRr1JlhlzDx3VCTXavbDIbWKKAyNjo= From: Yosry Ahmed To: Sean Christopherson Cc: Paolo Bonzini , Jim Mattson , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Yosry Ahmed Subject: [PATCH v2 20/23] KVM: selftests: Stop passing a memslot to nested_map_memslot() Date: Tue, 21 Oct 2025 07:47:33 +0000 Message-ID: <20251021074736.1324328-21-yosry.ahmed@linux.dev> In-Reply-To: <20251021074736.1324328-1-yosry.ahmed@linux.dev> References: <20251021074736.1324328-1-yosry.ahmed@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" On x86, KVM selftests use memslot 0 for all the default regions used by the test infrastructure. This is an implementation detail. nested_map_memslot() is currently used to map the default regions by explicitly passing slot 0, which leaks the library implementation into the caller. Rename the function to a very verbose nested_identity_map_default_memslots() to reflect what it actually does. Add an assertion that only memslot 0 is being used so that the implementation does not change from under us. No functional change intended. Signed-off-by: Yosry Ahmed --- tools/testing/selftests/kvm/include/x86/processor.h | 3 +-- tools/testing/selftests/kvm/lib/x86/processor.c | 11 +++++++---- tools/testing/selftests/kvm/x86/vmx_dirty_log_test.c | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/kvm/include/x86/processor.h b/tools/te= sting/selftests/kvm/include/x86/processor.h index 13e8f4a1f589d..2608152b2fa27 100644 --- a/tools/testing/selftests/kvm/include/x86/processor.h +++ b/tools/testing/selftests/kvm/include/x86/processor.h @@ -1459,8 +1459,7 @@ void virt_map_level(struct kvm_vm *vm, uint64_t vaddr= , uint64_t paddr, =20 void nested_map(struct kvm_vm *vm, vm_paddr_t root_gpa, uint64_t nested_paddr, uint64_t paddr, uint64_t size); -void nested_map_memslot(struct kvm_vm *vm, vm_paddr_t root_gpa, - uint32_t memslot); +void nested_identity_map_default_memslots(struct kvm_vm *vm, vm_paddr_t ro= ot_gpa); void nested_identity_map_1g(struct kvm_vm *vm, vm_paddr_t root_gpa, uint64_t addr, uint64_t size); =20 diff --git a/tools/testing/selftests/kvm/lib/x86/processor.c b/tools/testin= g/selftests/kvm/lib/x86/processor.c index 1725f8fde2aa5..958389ec1722d 100644 --- a/tools/testing/selftests/kvm/lib/x86/processor.c +++ b/tools/testing/selftests/kvm/lib/x86/processor.c @@ -496,12 +496,15 @@ void nested_map(struct kvm_vm *vm, vm_paddr_t root_gp= a, /* Prepare an identity extended page table that maps all the * physical pages in VM. */ -void nested_map_memslot(struct kvm_vm *vm, vm_paddr_t root_gpa, - uint32_t memslot) +void nested_identity_map_default_memslots(struct kvm_vm *vm, vm_paddr_t ro= ot_gpa) { + uint32_t s, memslot =3D 0; sparsebit_idx_t i, last; - struct userspace_mem_region *region =3D - memslot2region(vm, memslot); + struct userspace_mem_region *region =3D memslot2region(vm, memslot); + + /* Only memslot 0 is mapped here, ensure it's the only one being used */ + for (s =3D 0; s < NR_MEM_REGIONS; s++) + TEST_ASSERT_EQ(vm->memslots[s], 0); =20 i =3D (region->region.guest_phys_addr >> vm->page_shift) - 1; last =3D i + (region->region.memory_size >> vm->page_shift); diff --git a/tools/testing/selftests/kvm/x86/vmx_dirty_log_test.c b/tools/t= esting/selftests/kvm/x86/vmx_dirty_log_test.c index e54e6111164e7..b8ebb246aaf15 100644 --- a/tools/testing/selftests/kvm/x86/vmx_dirty_log_test.c +++ b/tools/testing/selftests/kvm/x86/vmx_dirty_log_test.c @@ -121,7 +121,7 @@ static void test_vmx_dirty_log(bool enable_ept) */ if (enable_ept) { prepare_eptp(vmx, vm); - nested_map_memslot(vm, vmx->eptp_gpa, 0); + nested_identity_map_default_memslots(vm, vmx->eptp_gpa); nested_map(vm, vmx->eptp_gpa, NESTED_TEST_MEM1, GUEST_TEST_MEM, PAGE_SIZ= E); nested_map(vm, vmx->eptp_gpa, NESTED_TEST_MEM2, GUEST_TEST_MEM, PAGE_SIZ= E); } --=20 2.51.0.869.ge66316f041-goog