On Wed, Oct 22, 2025 at 12:10:35AM -0700, Christoph Hellwig wrote: > On Mon, Oct 20, 2025 at 09:58:54AM -0300, Jason Gunthorpe wrote: > > I explained it in detail in the message you are repling to. If > > something is not clear can you please be more specific?? > > > > Is it the mmap in VFIO perhaps that is causing these questions? > > > > VFIO uses a PFNMAP VMA, so you can't pin_user_page() it. It uses > > unmap_mapping_range() during its remove() path to get rid of the VMA > > PTEs. > > This all needs to g• into the explanation. > > > Instead the DMABUF FD is used to pass the MMIO pages between VFIO and > > another driver. DMABUF has a built in invalidation mechanism that VFIO > > triggers before remove(). The invalidation removes access from the > > other driver. > > > > This is different than NVMe which has no invalidation. NVMe does > > unmap_mapping_range() on the VMA and waits for all the short lived > > pgmap references to clear. We don't need anything like that because > > DMABUF invalidation is synchronous. > > Please add documentation for this model to the source tree.
Okay, Lets see what we can come up with. I think explaining the dmabuf model with respect to the p2p provider in the new common dmabuf mapping API code would make sense. Jason
