Re: [PATCH v2 4/4] hugetlb/userfaultfd: Unshare all pmds for hugetlbfs when register wp

From: Peter Xu
Date: Thu Feb 18 2021 - 15:45:21 EST


On Thu, Feb 18, 2021 at 12:34:55PM -0800, Axel Rasmussen wrote:
> On Thu, Feb 18, 2021 at 12:32 PM Peter Xu <peterx@xxxxxxxxxx> wrote:
> >
> > On Thu, Feb 18, 2021 at 10:32:00AM -0800, Axel Rasmussen wrote:
> > > > @@ -1448,6 +1449,9 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx,
> > > > vma->vm_flags = new_flags;
> > > > vma->vm_userfaultfd_ctx.ctx = ctx;
> > > >
> > > > + if (is_vm_hugetlb_page(vma) && uffd_disable_huge_pmd_share(vma))
> > > > + hugetlb_unshare_all_pmds(vma);
> > >
> > > This line yields the following error, if building with:
> > > # CONFIG_CMA is not set
> > >
> > > ./fs/userfaultfd.c:1459: undefined reference to `hugetlb_unshare_all_pmds'
> >
> > Ouch.. Axel, you mean CONFIG_HUGETLBFS rather than CONFIG_CMA, am I right?
>
> Surprisingly no, there's a "#ifdef CONFIG_CMA" line ~100 lines above
> where hugetlb_unshare_all_pmds is defined in hugetlb.c which causes
> this. My guess is that putting the function inside that block was
> accidental and it can just be moved.

Right, thanks for catching that, I actually need to fix both. Thanks,

--
Peter Xu