On 21/08/2023 15:15, Muhammad Usama Anjum wrote: [...] > + > + > +int init_uffd(void) > +{ > + struct uffdio_api uffdio_api; > + > + uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK | UFFD_USER_MODE_ONLY); > + if (uffd == -1) > + ksft_exit_fail_msg("uffd syscall failed\n"); > + > + uffdio_api.api = UFFD_API; > + uffdio_api.features = UFFD_FEATURE_WP_UNPOPULATED | UFFD_FEATURE_WP_ASYNC | > + UFFD_FEATURE_WP_HUGETLBFS_SHMEM; > + if (ioctl(uffd, UFFDIO_API, &uffdio_api)) > + ksft_exit_fail_msg("UFFDIO_API\n"); > + > + if (!(uffdio_api.api & UFFDIO_REGISTER_MODE_WP) || > + !(uffdio_api.features & UFFD_FEATURE_WP_UNPOPULATED) || > + !(uffdio_api.features & UFFD_FEATURE_WP_ASYNC) || > + !(uffdio_api.features & UFFD_FEATURE_WP_HUGETLBFS_SHMEM)) > + ksft_exit_fail_msg("UFFDIO_API error %llu\n", uffdio_api.api); Hi, I've just noticed that this fails on arm64 because the required features are not available. It's common practice to skip instead of fail for this sort of condition (and that's how all the other uffd tests work). The current fail approach creates noise in our CI. I see this is already in mm-stable so perhaps we can add a patch to fix on top? Thanks, Ryan