On 28.07.23 21:39, Peter Xu wrote:
Hi, Linus,
On Fri, Jul 28, 2023 at 09:18:45AM -0700, Linus Torvalds wrote:
The original reason for FOLL_NUMA simply does not exist any more. We
know exactly when a page is marked for NUMA faulting, and we should
simply *ignore* it for GUP and follow_page().
I think we should treat a NUMA-faulting page as just being present
(and not NUMA-fault it).
But then does it means that any gup-only user will have numa balancing
completely disabled? Since as long as the page will only be accessed by
GUP, the numa balancing will never trigger anyway.. I think KVM is
manipulating guest pages just like that. Not sure whether it means it'll
void the whole numa effort there.
If we allow that GUP from happening (taking protnone as present) I assume
it'll also stop any further numa balancing on this very page to trigger
too, because even if some page fault handler triggered on this protnone
page later that is not GUP anymore, when it wants to migrate the page to
the other numa node it'll see someone is holding a reference on it already,
and then we should give up the balancing.
So to me FOLL_NUMA (or any identifier like it.. just to describe the
caller's need; some may really just want to fetch the pfn/page) still makes
sense. But maybe I totally misunderstood above..
Yes, I agree, took me a bit longer to realize (being a KVM developer :)
... I'm really ready for the weekend).
So if this series is not acceptable then better revert that commit -- or
let callers like KVM specify FOLL_NUMA.
--
Cheers,
David / dhildenb