Messages in this thread | | | From | Linus Torvalds <> | Date | Mon, 28 Sep 2020 12:50:03 -0700 | Subject | Re: [PATCH 1/5] mm: Introduce mm_struct.has_pinned |
| |
On Mon, Sep 28, 2020 at 12:36 PM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > So I'll do the pte wrprotect/restore removal. Anybody willing to do > and test the sequence count approach?
So the wrprotect removal is trivial, with most of it being about the comments.
However, when I look at this, I am - once again - tempted to just add a
if (__page_mapcount(page) > 1) return 1;
there too. Because we know it's a private mapping (shared mappings we checked for with the "is_cow_mapping()" earlier), and the only case we really care about is the one where the page is only mapped in the current mm (because that's what a write pinning will have done, and as mentioned, a read pinning doesn't do anything wrt fork() right now anyway).
So if it's mapped in another mm, the COW clearly hasn't been broken by a pin, and a read pinned page had already gone through a fork.
But the more I look at this code, the more I go "ok, I want somebody to actually test this with the rdma case".
So I'll attach my suggested patch, but I won't actually commit it. I'd really like to have this tested, possibly _together_ with the sequence count addition..
Linus [unhandled content-type:application/octet-stream] | |