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@redhat.com
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,