On Mon, Oct 02, 2023 at 04:42:50PM +0200, David Hildenbrand wrote: > On 23.09.23 03:31, Suren Baghdasaryan wrote: > > From: Andrea Arcangeli <aarcange@xxxxxxxxxx> > > > > As far as the rmap code is concerned, UFFDIO_REMAP only alters the > > page->mapping and page->index. It does it while holding the page > > lock. However folio_referenced() is doing rmap walks without taking the > > folio lock first, so folio_lock_anon_vma_read() must be updated to > > re-check that the folio->mapping didn't change after we obtained the > > anon_vma read lock. > > I'm curious: why don't we need this for existing users of > page_move_anon_rmap()? What's special about UFFDIO_REMAP? Totally no expert on anon vma so I'm prone to errors, but IIUC the difference here is root anon vma cannot change in page_move_anon_rmap(), while UFFDIO_REMAP can. Thanks, -- Peter Xu