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,