On 9/17/20 12:42 PM, Linus Torvalds wrote:
On Thu, Sep 17, 2020 at 12:03 PM Peter Xu <peterx@xxxxxxxxxx> wrote:
...
Is there possibly somethign else we can filter on than just GUP_PIN_COUNTING_BIAS? Because it could be as simple as just marking the vma itself and saying "this vma has had a page pinning event done on it". Because if we only start copying the page *iff* the vma is marked by that "this vma had page pinning" _and_ the page count is bigger than GUP_PIN_COUNTING_BIAS, than I think we can rest pretty easily knowing that we aren't going to hit some regular old-fashioned UNIX server cases with a lot of forks.. Linus
OK, so this sounds like an improvement that would be desirable in the core API: 1) Have all the pin_user_pages*() functions reach up and mark the vma(s) as FOLL_PIN_HAPPENED. I'm assuming that the vma can live it's full life without the need to ever clear that flag. That *seems* reasonable, based on the use cases for these kinds of pages. 2) And then rename: page_maybe_dma_pinned() --> page_likely_dma_pinned() :) thanks, -- John Hubbard NVIDIA