On Wed, Jun 26, 2024 at 09:05:13AM -0400, Audra Mitchell wrote: > If CONFIG_PTE_MARKER_UFFD_WP is disabled, then we turn off three features > in userfaultfd_api (UFFD_FEATURE_WP_HUGETLBFS_SHMEM, > UFFD_FEATURE_WP_UNPOPULATED, and UFFD_FEATURE_WP_ASYNC). Currently this > test always will call uffdio_regsiter with the flag > UFFDIO_REGISTER_MODE_WP. However, the kernel ensures in vma_can_userfault > that if the feature UFFD_FEATURE_WP_HUGETLBFS_SHMEM is disabled, only > allow the VM_UFFD_WP on anonymous vmas, meaning our call to > uffdio_regsiter will fail. We still want to be able to run the test even > if we have CONFIG_PTE_MARKER_UFFD_WP disabled, so check to see if the > feature UFFD_FEATURE_WP_HUGETLBFS_SHMEM has been turned off in the test > and if so, disable us from calling uffdio_regsiter with the flag > UFFDIO_REGISTER_MODE_WP. > > Signed-off-by: Audra Mitchell <audra@xxxxxxxxxx> Reviewed-by: Peter Xu <peterx@xxxxxxxxxx> > --- > tools/testing/selftests/mm/uffd-stress.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/tools/testing/selftests/mm/uffd-stress.c b/tools/testing/selftests/mm/uffd-stress.c > index b9b6d858eab8..3266ae885f75 100644 > --- a/tools/testing/selftests/mm/uffd-stress.c > +++ b/tools/testing/selftests/mm/uffd-stress.c > @@ -419,6 +419,9 @@ static void parse_test_type_arg(const char *raw_type) > test_uffdio_wp = test_uffdio_wp && > (features & UFFD_FEATURE_PAGEFAULT_FLAG_WP); > > + if (test_type != TEST_ANON && !(features & UFFD_FEATURE_WP_HUGETLBFS_SHMEM)) > + test_uffdio_wp = false; > + > close(uffd); > uffd = -1; > } > -- > 2.44.0 > -- Peter Xu