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