Re: [regression] Re: [PATCH v6 06/12] mm/gup: track FOLL_PIN pages

From: Alex Williamson
Date: Fri Apr 24 2020 - 16:16:05 EST


On Fri, 24 Apr 2020 12:20:03 -0700
John Hubbard <jhubbard@xxxxxxxxxx> wrote:

> On 2020-04-24 11:18, Alex Williamson wrote:
> ...
> > Hi John,
> >
> > I'm seeing a regression bisected back to this commit (3faa52c03f44
> > mm/gup: track FOLL_PIN pages). I've attached some vfio-pci test code
> > that reproduces this by mmap'ing a page of MMIO space of a device and
> > then tries to map that through the IOMMU, so this should be attempting
> > a gup/pin of a PFNMAP page. Previously this failed gracefully (-EFAULT),
> > but now results in:
>
>
> Hi Alex,
>
> Thanks for this report, and especially for source code to test it,
> seeing as how I can't immediately spot the problem just from the crash
> data so far. I'll get set up and attempt a repro.
>
> Actually this looks like it should be relatively easier than the usual
> sort of "oops, we leaked a pin_user_pages() or unpin_user_pages() call,
> good luck finding which one" report that I fear the most. :) This one
> looks more like a crash that happens directly, when calling into the
> pin_user_pages_remote() code. Which should be a lot easier to solve...
>
> btw, if you are set up for it, it would be nice to know what source file
> and line number corresponds to the RIP (get_pfnblock_flags_mask+0x22)
> below. But if not, no problem, because I've likely got to do the repro
> in any case.

Hey John,

TBH I'm feeling a lot less confident about this bisect. This was
readily reproducible to me on a clean tree a bit ago, but now it
eludes me. Let me go back and figure out what's going on before you
spend any more time on it. Thanks,

Alex