On Mon, Jul 31, 2023 at 11:23:59AM -0700, Linus Torvalds wrote: > So GUP-fast can only look at the page table data, and as such *has* to > fail if the page table is inaccessible. > > But GUP in general? Why would it want to honor numa faulting? > Particularly by default, and _particularly_ for things like > FOLL_REMOTE. True. > > In fact, I feel like this is what the real rule should be: we simply > define that get_user_pages_fast() is about looking up the page in the > page tables. > > So if you want something that acts like a page table lookup, you use > that "fast" thing. It's literally how it is designed. The whole - and > pretty much only - point of it is that it can be used with no locking > at all, because it basically acts like the hardware lookup does. Unfortunately I think at least kvm (besides the rest..) relies not only on numa balancing but also fast-gup.. :-( Please refer to hva_to_pfn() where it even supports fast-gup-only HVA translation when atomic==true set. Thanks, -- Peter Xu