On 7/1/26 22:09, Mike Rapoport wrote: > From: "Mike Rapoport (Microsoft)" <[email protected]> > > Non-cooperarive uffd events are inherently racy and can happen in > parallel with other userfaultfd operations. > > During event tests in uffd-unit-tests, the uffd monitor calls > UFFDIO_UNREGISTER upon receiving UFFD_EVENT_REMOVE. > > In parallel, the faulting_process() verifies that the removed memory is > actually zeroed. > > If a verification read wins the race with UFFDIO_UNREGISTER, it causes a > missing fault that uffd monitor would receive after UFFDIO_UNREGISTER is > complete. The monitor resolves the fault using UFFDIO_COPY that fails > with -ENOENT which means that VMA has been changed (see commit > 27d02568f529 ("userfaultfd: mcopy_atomic: return -ENOENT when no > compatible VMA found")). > > Treat -ENOENT returned by UFFDIO_COPY as non-fatal, the same way > -EEXIST is treated for concurrent faults, and don't fail the test. > > Signed-off-by: Mike Rapoport (Microsoft) <[email protected]> > ---
Reviewed-by: David Hildenbrand (Arm) <[email protected]> -- Cheers, David

