Re: [PATCH 2/6] KVM: selftests: Stash the host page size in a global in the guest_memfd test
From: Ackerley Tng
Date: Mon Sep 29 2025 - 06:56:52 EST
Sean Christopherson <seanjc@xxxxxxxxxx> writes:
> Use a global variable to track the host page size in the guest_memfd test
> so that the information doesn't need to be constantly passed around. The
> state is purely a reflection of the underlying system, i.e. can't be set
> by the test and is constant for a given invocation of the test, and thus
> explicitly passing the host page size to individual testcases adds no
> value, e.g. doesn't allow testing different combinations.
>
I was going to pass in page_size to each of these test cases to test
HugeTLB support, that's how page_size crept into the parameters of these
functions.
Could we do a getpagesize() within the gmem_test() macro that you
introduced instead?
Reviewed-by: Ackerley Tng <ackerleytng@xxxxxxxxxx>
> Making page_size a global will simplify an upcoming change to create a new
> guest_memfd instance per testcase.
>
> No functional change intended.
>
> Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
> ---
> .../testing/selftests/kvm/guest_memfd_test.c | 37 +++++++++----------
> 1 file changed, 18 insertions(+), 19 deletions(-)
>
> diff --git a/tools/testing/selftests/kvm/guest_memfd_test.c b/tools/testing/selftests/kvm/guest_memfd_test.c
> index 81b11a958c7a..8251d019206a 100644
> --- a/tools/testing/selftests/kvm/guest_memfd_test.c
> +++ b/tools/testing/selftests/kvm/guest_memfd_test.c
> @@ -24,6 +24,8 @@
> #include "test_util.h"
> #include "ucall_common.h"
>
> +static size_t page_size;
> +
> static void test_file_read_write(int fd)
> {
> char buf[64];
> @@ -38,7 +40,7 @@ static void test_file_read_write(int fd)
> "pwrite on a guest_mem fd should fail");
> }
>
> -static void test_mmap_supported(int fd, size_t page_size, size_t total_size)
> +static void test_mmap_supported(int fd, size_t total_size)
> {
> const char val = 0xaa;
> char *mem;
> @@ -78,7 +80,7 @@ void fault_sigbus_handler(int signum)
> siglongjmp(jmpbuf, 1);
> }
>
>
> [...snip...]
>