[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f0378019-01d7-48df-bebf-d2a59e9d8582@intel.com>
Date: Wed, 30 Jul 2025 19:04:29 +0800
From: Xiaoyao Li <xiaoyao.li@...el.com>
To: Sean Christopherson <seanjc@...gle.com>,
Paolo Bonzini <pbonzini@...hat.com>, Marc Zyngier <maz@...nel.org>,
Oliver Upton <oliver.upton@...ux.dev>
Cc: kvm@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
kvmarm@...ts.linux.dev, linux-kernel@...r.kernel.org,
Ira Weiny <ira.weiny@...el.com>, Gavin Shan <gshan@...hat.com>,
Shivank Garg <shivankg@....com>, Vlastimil Babka <vbabka@...e.cz>,
David Hildenbrand <david@...hat.com>, Fuad Tabba <tabba@...gle.com>,
Ackerley Tng <ackerleytng@...gle.com>, Tao Chan <chentao@...inos.cn>,
James Houghton <jthoughton@...gle.com>
Subject: Re: [PATCH v17 22/24] KVM: selftests: Do not use hardcoded page sizes
in guest_memfd test
On 7/30/2025 6:54 AM, Sean Christopherson wrote:
> From: Fuad Tabba <tabba@...gle.com>
>
> Update the guest_memfd_test selftest to use getpagesize() instead of
> hardcoded 4KB page size values.
>
> Using hardcoded page sizes can cause test failures on architectures or
> systems configured with larger page sizes, such as arm64 with 64KB
> pages. By dynamically querying the system's page size, the test becomes
> more portable and robust across different environments.
>
> Additionally, build the guest_memfd_test selftest for arm64.
>
> Reviewed-by: David Hildenbrand <david@...hat.com>
> Reviewed-by: Shivank Garg <shivankg@....com>
> Reviewed-by: Gavin Shan <gshan@...hat.com>
> Suggested-by: Gavin Shan <gshan@...hat.com>
> Signed-off-by: Fuad Tabba <tabba@...gle.com>
> Signed-off-by: Sean Christopherson <seanjc@...gle.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@...el.com>
> ---
> tools/testing/selftests/kvm/Makefile.kvm | 1 +
> tools/testing/selftests/kvm/guest_memfd_test.c | 11 ++++++-----
> 2 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/kvm/Makefile.kvm b/tools/testing/selftests/kvm/Makefile.kvm
> index 40920445bfbe..963687892bcb 100644
> --- a/tools/testing/selftests/kvm/Makefile.kvm
> +++ b/tools/testing/selftests/kvm/Makefile.kvm
> @@ -174,6 +174,7 @@ TEST_GEN_PROGS_arm64 += arch_timer
> TEST_GEN_PROGS_arm64 += coalesced_io_test
> TEST_GEN_PROGS_arm64 += dirty_log_perf_test
> TEST_GEN_PROGS_arm64 += get-reg-list
> +TEST_GEN_PROGS_arm64 += guest_memfd_test
> TEST_GEN_PROGS_arm64 += memslot_modification_stress_test
> TEST_GEN_PROGS_arm64 += memslot_perf_test
> TEST_GEN_PROGS_arm64 += mmu_stress_test
> diff --git a/tools/testing/selftests/kvm/guest_memfd_test.c b/tools/testing/selftests/kvm/guest_memfd_test.c
> index ce687f8d248f..341ba616cf55 100644
> --- a/tools/testing/selftests/kvm/guest_memfd_test.c
> +++ b/tools/testing/selftests/kvm/guest_memfd_test.c
> @@ -146,24 +146,25 @@ static void test_create_guest_memfd_multiple(struct kvm_vm *vm)
> {
> int fd1, fd2, ret;
> struct stat st1, st2;
> + size_t page_size = getpagesize();
>
> - fd1 = __vm_create_guest_memfd(vm, 4096, 0);
> + fd1 = __vm_create_guest_memfd(vm, page_size, 0);
> TEST_ASSERT(fd1 != -1, "memfd creation should succeed");
>
> ret = fstat(fd1, &st1);
> TEST_ASSERT(ret != -1, "memfd fstat should succeed");
> - TEST_ASSERT(st1.st_size == 4096, "memfd st_size should match requested size");
> + TEST_ASSERT(st1.st_size == page_size, "memfd st_size should match requested size");
>
> - fd2 = __vm_create_guest_memfd(vm, 8192, 0);
> + fd2 = __vm_create_guest_memfd(vm, page_size * 2, 0);
> TEST_ASSERT(fd2 != -1, "memfd creation should succeed");
>
> ret = fstat(fd2, &st2);
> TEST_ASSERT(ret != -1, "memfd fstat should succeed");
> - TEST_ASSERT(st2.st_size == 8192, "second memfd st_size should match requested size");
> + TEST_ASSERT(st2.st_size == page_size * 2, "second memfd st_size should match requested size");
>
> ret = fstat(fd1, &st1);
> TEST_ASSERT(ret != -1, "memfd fstat should succeed");
> - TEST_ASSERT(st1.st_size == 4096, "first memfd st_size should still match requested size");
> + TEST_ASSERT(st1.st_size == page_size, "first memfd st_size should still match requested size");
> TEST_ASSERT(st1.st_ino != st2.st_ino, "different memfd should have different inode numbers");
>
> close(fd2);
Powered by blists - more mailing lists