[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 17/19] KVM: selftests: Add basic selftests for hugetlbfs-back
From: |
Ackerley Tng |
Subject: |
[RFC PATCH 17/19] KVM: selftests: Add basic selftests for hugetlbfs-backed guest_mem |
Date: |
Tue, 6 Jun 2023 19:04:02 +0000 |
Add tests for 2MB and 1GB page sizes.
Signed-off-by: Ackerley Tng <ackerleytng@google.com>
---
.../testing/selftests/kvm/guest_memfd_test.c | 33 ++++++++++++++-----
1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/tools/testing/selftests/kvm/guest_memfd_test.c
b/tools/testing/selftests/kvm/guest_memfd_test.c
index 059b33cdecec..6e24631119c6 100644
--- a/tools/testing/selftests/kvm/guest_memfd_test.c
+++ b/tools/testing/selftests/kvm/guest_memfd_test.c
@@ -90,20 +90,14 @@ static void test_fallocate(int fd, size_t page_size, size_t
total_size)
TEST_ASSERT(!ret, "fallocate to restore punched hole should succeed");
}
-
-int main(int argc, char *argv[])
+void test_guest_mem(struct kvm_vm *vm, uint32_t flags, size_t page_size)
{
- size_t page_size;
- size_t total_size;
int fd;
- struct kvm_vm *vm;
+ size_t total_size;
- page_size = getpagesize();
total_size = page_size * 4;
- vm = vm_create_barebones();
-
- fd = vm_create_guest_memfd(vm, total_size, 0);
+ fd = vm_create_guest_memfd(vm, total_size, flags);
test_file_read_write(fd);
test_mmap(fd, page_size);
@@ -112,3 +106,24 @@ int main(int argc, char *argv[])
close(fd);
}
+
+int main(int argc, char *argv[])
+{
+ struct kvm_vm *vm = vm_create_barebones();
+
+ printf("Test guest mem 4K\n");
+ test_guest_mem(vm, 0, getpagesize());
+ printf(" PASSED\n");
+
+ printf("Test guest mem hugetlb 2M\n");
+ test_guest_mem(
+ vm, KVM_GUEST_MEMFD_HUGETLB | KVM_GUEST_MEMFD_HUGE_2MB, 2UL <<
20);
+ printf(" PASSED\n");
+
+ printf("Test guest mem hugetlb 1G\n");
+ test_guest_mem(
+ vm, KVM_GUEST_MEMFD_HUGETLB | KVM_GUEST_MEMFD_HUGE_1GB, 1UL <<
30);
+ printf(" PASSED\n");
+
+ return 0;
+}
--
2.41.0.rc0.172.g3f132b7071-goog
- [RFC PATCH 08/19] mm: hugetlb: Refactor restore_reserve_on_error, (continued)
- [RFC PATCH 08/19] mm: hugetlb: Refactor restore_reserve_on_error, Ackerley Tng, 2023/06/06
- [RFC PATCH 07/19] mm: hugetlb: Refactor vma_*_reservation functions, Ackerley Tng, 2023/06/06
- [RFC PATCH 09/19] mm: hugetlb: Use restore_reserve_on_error directly in filesystems, Ackerley Tng, 2023/06/06
- [RFC PATCH 10/19] mm: hugetlb: Parametrize alloc_hugetlb_folio_from_subpool() by resv_map, Ackerley Tng, 2023/06/06
- [RFC PATCH 11/19] mm: hugetlb: Parametrize hugetlb functions by resv_map, Ackerley Tng, 2023/06/06
- [RFC PATCH 12/19] mm: truncate: Expose preparation steps for truncate_inode_pages_final, Ackerley Tng, 2023/06/06
- [RFC PATCH 13/19] KVM: guest_mem: Refactor kvm_gmem fd creation to be in layers, Ackerley Tng, 2023/06/06
- [RFC PATCH 14/19] KVM: guest_mem: Refactor cleanup to separate inode and file cleanup, Ackerley Tng, 2023/06/06
- [RFC PATCH 15/19] KVM: guest_mem: hugetlb: initialization and cleanup, Ackerley Tng, 2023/06/06
- [RFC PATCH 16/19] KVM: guest_mem: hugetlb: allocate and truncate from hugetlb, Ackerley Tng, 2023/06/06
- [RFC PATCH 17/19] KVM: selftests: Add basic selftests for hugetlbfs-backed guest_mem,
Ackerley Tng <=
- [RFC PATCH 18/19] KVM: selftests: Support various types of backing sources for private memory, Ackerley Tng, 2023/06/06
- [RFC PATCH 19/19] KVM: selftests: Update test for various private memory backing source types, Ackerley Tng, 2023/06/06
- Re: [RFC PATCH 00/19] hugetlb support for KVM guest_mem, Isaku Yamahata, 2023/06/08
- Re: [RFC PATCH 00/19] hugetlb support for KVM guest_mem, Mike Kravetz, 2023/06/16