On Wed, Jan 21, 2026 at 10:20:51AM +0100, Christian König wrote: > On 1/20/26 15:07, Leon Romanovsky wrote: > > From: Leon Romanovsky <[email protected]> > > > > dma-buf invalidation is performed asynchronously by hardware, so VFIO must > > wait until all affected objects have been fully invalidated. > > > > Fixes: 5d74781ebc86 ("vfio/pci: Add dma-buf export support for MMIO > > regions") > > Signed-off-by: Leon Romanovsky <[email protected]> > > Reviewed-by: Christian König <[email protected]> > > Please also keep in mind that the while this wait for all fences for > correctness you also need to keep the mapping valid until > dma_buf_unmap_attachment() was called.
Can you elaborate on this more? I think what we want for dma_buf_attach_revocable() is the strong guarentee that the importer stops doing all access to the memory once this sequence is completed and the exporter can rely on it. I don't think this works any other way. This is already true for dynamic move capable importers, right? For the non-revocable importers I can see the invalidate sequence is more of an advisory thing and you can't know the access is gone until the map is undone. > In other words you can only redirect the DMA-addresses previously > given out into nirvana (or a dummy memory or similar), but you still > need to avoid re-using them for something else. Does any driver do this? If you unload/reload a GPU driver it is going to re-use the addresses handed out? Jason
