On Mon, 24 Jun 2024 10:42:00 -0400 Peter Xu <peterx@xxxxxxxxxx> wrote: > > uffdio_api.features &= ~UFFD_FEATURE_WP_HUGETLBFS_SHMEM; > > uffdio_api.features &= ~UFFD_FEATURE_WP_UNPOPULATED; > > uffdio_api.features &= ~UFFD_FEATURE_WP_ASYNC; > > #endif > > > > If you run the userfaultfd selftests with the run_vmtests script we get > > several failures stemming from trying to call uffdio_regsiter with the flag > > UFFDIO_REGISTER_MODE_WP. However, the kernel ensures in vma_can_userfault() > > that if CONFIG_PTE_MARKER_UFFD_WP is disabled, only allow the VM_UFFD_WP - > > which is set when you pass the UFFDIO_REGISTER_MODE_WP flag - on > > anonymous vmas. > > > > In parse_test_type_arg() I added the features check against > > UFFD_FEATURE_WP_UNPOPULATED as it seemed the most well know feature/flag. I'm > > more than happy to take any suggestions and adapt them if you have any! > > There're documents for these features in the headers: > > * UFFD_FEATURE_WP_HUGETLBFS_SHMEM indicates that userfaultfd > * write-protection mode is supported on both shmem and hugetlbfs. > * > * UFFD_FEATURE_WP_UNPOPULATED indicates that userfaultfd > * write-protection mode will always apply to unpopulated pages > * (i.e. empty ptes). This will be the default behavior for shmem > * & hugetlbfs, so this flag only affects anonymous memory behavior > * when userfault write-protection mode is registered. > > While in this context ("test_type != TEST_ANON") IIUC the accurate feature > to check is UFFD_FEATURE_WP_HUGETLBFS_SHMEM. > > In most kernels they should behave the same indeed, but note that since > UNPOPULATED was introduced later than shmem/hugetlb support, it means on > some kernel the result of checking these two features will be different. I'm unsure what to do with this series. Peter, your review comments are unclear - do you request updates? Also, the patches weren't cc:linux-mm which limits the audience. I'll drop this version. Audra, please continue to move this forward.