Messages in this thread | | | From | Linus Torvalds <> | Date | Sun, 19 Dec 2021 13:53:36 -0800 | Subject | Re: [PATCH v1 06/11] mm: support GUP-triggered unsharing via FAULT_FLAG_UNSHARE (!hugetlb) |
| |
On Sun, Dec 19, 2021 at 1:48 PM Matthew Wilcox <willy@infradead.org> wrote: > > Yes, agreed, I was thinking that we could use "not mapped at all" > as an optimisation to avoid doing rmap walks. eg __unmap_and_move().
So the thing is, it's a very dodgy optimization for a rather simple reason: what if somebody pages the page in?
So even "not mapped at all" is questionable.
You have to check that it's also not a swapcache page, and hold the page lock for that check, at the very least.
And by then, you're really in a very unusual situation - and my gut feel says not one worth optimizing for (because anon pages are _usually_ mapped at least once).
But I dunno - it might depend on your load. Maybe you have some very special load that happens to trigger this case a lot?
Linus
| |