selftests/mm: workaround no way to detect uffd-minor + wp
authorPeter Xu <peterx@redhat.com>
Wed, 12 Apr 2023 16:45:17 +0000 (12:45 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 18 Apr 2023 23:30:07 +0000 (16:30 -0700)
Userfaultfd minor+wp mode was very recently added.  The test will fail on
the old kernels at ioctl(UFFDIO_CONTINUE) which is misterious.
Unfortunately there's no feature bit to detect for this support.

Add a hack to leverage WP_UNPOPULATED to detect whether that feature
existed, since WP_UNPOPULATED was merged right after minor+wp.

Link: https://lkml.kernel.org/r/20230412164517.329152-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>
tools/testing/selftests/mm/uffd-unit-tests.c

index 160bd8c..a33d6c9 100644 (file)
@@ -780,7 +780,13 @@ uffd_test_case_t uffd_tests[] = {
                .mem_targets = MEM_SHMEM | MEM_HUGETLB,
                .uffd_feature_required =
                UFFD_FEATURE_MINOR_HUGETLBFS | UFFD_FEATURE_MINOR_SHMEM |
-               UFFD_FEATURE_PAGEFAULT_FLAG_WP,
+               UFFD_FEATURE_PAGEFAULT_FLAG_WP |
+               /*
+                * HACK: here we leveraged WP_UNPOPULATED to detect whether
+                * minor mode supports wr-protect.  There's no feature flag
+                * for it so this is the best we can test against.
+                */
+               UFFD_FEATURE_WP_UNPOPULATED,
        },
        {
                .name = "minor-collapse",