On Fri, Aug 26, 2022 at 04:47:22PM +0200, David Hildenbrand wrote:
To me anon exclusive only shows this mm exclusively owns this page. I didn't quickly figure out why that requires different handling on tlb flushs. Did I perhaps miss something?
GUP-fast is the magic bit, we have to make sure that we won't see new GUP pins, thus the TLB flush.
include/linux/mm.h:gup_must_unshare() contains documentation.
Hmm.. Shouldn't ptep_get_and_clear() (e.g., xchg() on x86_64) already guarantees that no other process/thread will see this pte anymore afterwards?