Re: [PATCH v3 5/5] hugetlb: Do early cow when page pinned on src mm
From: Peter Xu <peterx@redhat.com>
Date: 2021-02-09 02:59:12
Also in:
lkml
On Mon, Feb 08, 2021 at 04:09:26PM -0800, Mike Kravetz wrote:
On 2/5/21 8:54 AM, Peter Xu wrote:quoted
This is the last missing piece of the COW-during-fork effort when there're pinned pages found. One can reference 70e806e4e645 ("mm: Do early cow for pinned pages during fork() for ptes", 2020-09-27) for more information, since we do similar things here rather than pte this time, but just for hugetlb.Thanks for all the changes, the patch looks much better. I did not look at 70e806e4e645 in detail until now. That commit had the 'write protect trick' which was removed in subsequent commits. It took me a bit of git history tracking to figure out the state of that code today and the reasons for the subsequent changes. I guess that was a good way to educate me. :)
Thanks for looking into those details. I didn't expect that to happen since
after Jason's rework with 57efa1fe5957 ("mm/gup: prevent gup_fast from racing
with COW during fork", 2020-12-15) we can ignore the whole wr-protect idea as a
whole. I referenced 70e806e4e645 more for the idea of why we do that, and also
copy_present_page() on how it is generally implemented. That gup-fast race is
definitely tricky on its own.
quoted
Signed-off-by: Peter Xu <peterx@redhat.com> --- mm/hugetlb.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 4 deletions(-)Reviewed-by: Mike Kravetz <redacted>
Thanks! I'll post a new version very soon with your r-b, and also a compile warning fixed in the other patch as reported by Gal. -- Peter Xu