Skip to content

Commit 692f6ec

Browse files
Fuad Tabbabonzini
authored andcommitted
KVM: selftests: Do not use hardcoded page sizes in guest_memfd test
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 <[email protected]> Reviewed-by: Shivank Garg <[email protected]> Reviewed-by: Gavin Shan <[email protected]> Suggested-by: Gavin Shan <[email protected]> Signed-off-by: Fuad Tabba <[email protected]> Signed-off-by: Sean Christopherson <[email protected]> Message-ID: <[email protected]> Signed-off-by: Paolo Bonzini <[email protected]>
1 parent 3d3a04f commit 692f6ec

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

tools/testing/selftests/kvm/Makefile.kvm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ TEST_GEN_PROGS_arm64 += arch_timer
174174
TEST_GEN_PROGS_arm64 += coalesced_io_test
175175
TEST_GEN_PROGS_arm64 += dirty_log_perf_test
176176
TEST_GEN_PROGS_arm64 += get-reg-list
177+
TEST_GEN_PROGS_arm64 += guest_memfd_test
177178
TEST_GEN_PROGS_arm64 += memslot_modification_stress_test
178179
TEST_GEN_PROGS_arm64 += memslot_perf_test
179180
TEST_GEN_PROGS_arm64 += mmu_stress_test

tools/testing/selftests/kvm/guest_memfd_test.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,24 +146,25 @@ static void test_create_guest_memfd_multiple(struct kvm_vm *vm)
146146
{
147147
int fd1, fd2, ret;
148148
struct stat st1, st2;
149+
size_t page_size = getpagesize();
149150

150-
fd1 = __vm_create_guest_memfd(vm, 4096, 0);
151+
fd1 = __vm_create_guest_memfd(vm, page_size, 0);
151152
TEST_ASSERT(fd1 != -1, "memfd creation should succeed");
152153

153154
ret = fstat(fd1, &st1);
154155
TEST_ASSERT(ret != -1, "memfd fstat should succeed");
155-
TEST_ASSERT(st1.st_size == 4096, "memfd st_size should match requested size");
156+
TEST_ASSERT(st1.st_size == page_size, "memfd st_size should match requested size");
156157

157-
fd2 = __vm_create_guest_memfd(vm, 8192, 0);
158+
fd2 = __vm_create_guest_memfd(vm, page_size * 2, 0);
158159
TEST_ASSERT(fd2 != -1, "memfd creation should succeed");
159160

160161
ret = fstat(fd2, &st2);
161162
TEST_ASSERT(ret != -1, "memfd fstat should succeed");
162-
TEST_ASSERT(st2.st_size == 8192, "second memfd st_size should match requested size");
163+
TEST_ASSERT(st2.st_size == page_size * 2, "second memfd st_size should match requested size");
163164

164165
ret = fstat(fd1, &st1);
165166
TEST_ASSERT(ret != -1, "memfd fstat should succeed");
166-
TEST_ASSERT(st1.st_size == 4096, "first memfd st_size should still match requested size");
167+
TEST_ASSERT(st1.st_size == page_size, "first memfd st_size should still match requested size");
167168
TEST_ASSERT(st1.st_ino != st2.st_ino, "different memfd should have different inode numbers");
168169

169170
close(fd2);

0 commit comments

Comments
 (0)