selftests/mm: add shmem-private test to uffd-stress
The userfaultfd stress test never tested private shmem, which I think was overlooked long due. Add it so it matches with uffd unit test and it'll cover all memory supported with the three memory types. Meanwhile, rename the memory types a bit. Considering shared mem is the major use case for both shmem / hugetlbfs, changing from: anon, hugetlb, hugetlb_shared, shmem To (with shmem-private added): anon, hugetlb, hugetlb-private, shmem, shmem-private Add the shmem-private to run_vmtests.sh too. Link: https://lkml.kernel.org/r/20230412164546.329355-1-peterx@redhat.com Signed-off-by: Peter Xu <peterx@redhat.com> Cc: Axel Rasmussen <axelrasmussen@google.com> Cc: David Hildenbrand <david@redhat.com> Cc: Dmitry Safonov <0x7f454c46@gmail.com> Cc: Mike Kravetz <mike.kravetz@oracle.com> Cc: Mike Rapoport (IBM) <rppt@kernel.org> Cc: Zach O'Keefe <zokeefe@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
111fd29b2a
commit
5aec236fdd
@ -202,8 +202,9 @@ CATEGORY="userfaultfd" run_test ${uffd_stress_bin} anon 20 16
|
||||
# Hugetlb tests require source and destination huge pages. Pass in half
|
||||
# the size ($half_ufd_size_MB), which is used for *each*.
|
||||
CATEGORY="userfaultfd" run_test ${uffd_stress_bin} hugetlb "$half_ufd_size_MB" 32
|
||||
CATEGORY="userfaultfd" run_test ${uffd_stress_bin} hugetlb_shared "$half_ufd_size_MB" 32
|
||||
CATEGORY="userfaultfd" run_test ${uffd_stress_bin} hugetlb-private "$half_ufd_size_MB" 32
|
||||
CATEGORY="userfaultfd" run_test ${uffd_stress_bin} shmem 20 16
|
||||
CATEGORY="userfaultfd" run_test ${uffd_stress_bin} shmem-private 20 16
|
||||
|
||||
#cleanup
|
||||
echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages
|
||||
|
@ -59,8 +59,8 @@ const char *examples =
|
||||
"./userfaultfd shmem 1000 99\n\n"
|
||||
"# Run hugetlb memory test on 256MiB region with 50 bounces:\n"
|
||||
"./userfaultfd hugetlb 256 50\n\n"
|
||||
"# Run the same hugetlb test but using shared file:\n"
|
||||
"./userfaultfd hugetlb_shared 256 50\n\n"
|
||||
"# Run the same hugetlb test but using private file:\n"
|
||||
"./userfaultfd hugetlb-private 256 50\n\n"
|
||||
"# 10MiB-~6GiB 999 bounces anonymous test, "
|
||||
"continue forever unless an error triggers\n"
|
||||
"while ./userfaultfd anon $[RANDOM % 6000 + 10] 999; do true; done\n\n";
|
||||
@ -69,7 +69,7 @@ static void usage(void)
|
||||
{
|
||||
fprintf(stderr, "\nUsage: ./userfaultfd <test type> <MiB> <bounces>\n\n");
|
||||
fprintf(stderr, "Supported <test type>: anon, hugetlb, "
|
||||
"hugetlb_shared, shmem\n\n");
|
||||
"hugetlb-private, shmem, shmem-private\n\n");
|
||||
fprintf(stderr, "Examples:\n\n");
|
||||
fprintf(stderr, "%s", examples);
|
||||
exit(1);
|
||||
@ -376,14 +376,17 @@ static void set_test_type(const char *type)
|
||||
} else if (!strcmp(type, "hugetlb")) {
|
||||
test_type = TEST_HUGETLB;
|
||||
uffd_test_ops = &hugetlb_uffd_test_ops;
|
||||
} else if (!strcmp(type, "hugetlb_shared")) {
|
||||
map_shared = true;
|
||||
} else if (!strcmp(type, "hugetlb-private")) {
|
||||
test_type = TEST_HUGETLB;
|
||||
uffd_test_ops = &hugetlb_uffd_test_ops;
|
||||
} else if (!strcmp(type, "shmem")) {
|
||||
map_shared = true;
|
||||
test_type = TEST_SHMEM;
|
||||
uffd_test_ops = &shmem_uffd_test_ops;
|
||||
} else if (!strcmp(type, "shmem-private")) {
|
||||
test_type = TEST_SHMEM;
|
||||
uffd_test_ops = &shmem_uffd_test_ops;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user