Re: [PATCH v2 05/26] mm: gup: allow VM_FAULT_RETRY for multiple times
From: Jerome Glisse
Date: Fri Feb 22 2019 - 10:13:32 EST
On Fri, Feb 22, 2019 at 12:41:05PM +0800, Peter Xu wrote:
> On Thu, Feb 21, 2019 at 11:06:55AM -0500, Jerome Glisse wrote:
> > On Tue, Feb 12, 2019 at 10:56:11AM +0800, Peter Xu wrote:
> > > This is the gup counterpart of the change that allows the VM_FAULT_RETRY
> > > to happen for more than once.
> > >
> > > Signed-off-by: Peter Xu <peterx@xxxxxxxxxx>
> >
> > Reviewed-by: Jérôme Glisse <jglisse@xxxxxxxxxx>
>
> Thanks for the r-b, Jerome!
>
> Though I plan to change this patch a bit because I just noticed that I
> didn't touch up the hugetlbfs path for GUP. Though it was not needed
> for now because hugetlbfs is not yet supported but I think maybe I'd
> better do that as well in this same patch to make follow up works
> easier on hugetlb, and the patch will be more self contained. The new
> version will simply squash below change into current patch:
>
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index e3c738bde72e..a8eace2d5296 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -4257,8 +4257,10 @@ long follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma,
> fault_flags |= FAULT_FLAG_ALLOW_RETRY |
> FAULT_FLAG_RETRY_NOWAIT;
> if (flags & FOLL_TRIED) {
> - VM_WARN_ON_ONCE(fault_flags &
> - FAULT_FLAG_ALLOW_RETRY);
> + /*
> + * Note: FAULT_FLAG_ALLOW_RETRY and
> + * FAULT_FLAG_TRIED can co-exist
> + */
> fault_flags |= FAULT_FLAG_TRIED;
> }
> ret = hugetlb_fault(mm, vma, vaddr, fault_flags);
>
> I'd say this change is straightforward (it's the same as the
> faultin_page below but just for hugetlbfs). Please let me know if you
> still want to offer the r-b with above change squashed (I'll be more
> than glad to take it!), or I'll just wait for your review comment when
> I post the next version.
Looks good i should have thought of hugetlbfs. You can keep my r-b.
Cheers,
Jérôme