On Mon, Feb 08, 2021 at 04:09:26PM -0800, Mike Kravetz wrote: > On 2/5/21 8:54 AM, Peter Xu wrote: > > 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. > > > > > Signed-off-by: Peter Xu <peterx@xxxxxxxxxx> > > --- > > mm/hugetlb.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++---- > > 1 file changed, 62 insertions(+), 4 deletions(-) > > Reviewed-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> 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