Re: [PATCH v2 0/4] dma-buf: document revoke mechanism to invalidate shared buffers
From: Thomas Hellström
Date: Sun Jan 18 2026 - 09:16:44 EST
Hi, Leon,
On Sun, 2026-01-18 at 14:08 +0200, Leon Romanovsky wrote:
> Changelog:
> v2:
> * Changed series to document the revoke semantics instead of
> implementing it.
> v1:
> https://patch.msgid.link/20260111-dmabuf-revoke-v1-0-fb4bcc8c259b@xxxxxxxxxx
>
> ---------------------------------------------------------------------
> ----
> This series documents a dma-buf “revoke” mechanism: to allow a dma-
> buf
> exporter to explicitly invalidate (“kill”) a shared buffer after it
> has
> been distributed to importers, so that further CPU and device access
> is
> prevented and importers reliably observe failure.
>
> The change in this series is to properly document and use existing
> core
> “revoked” state on the dma-buf object and a corresponding exporter-
> triggered
> revoke operation. Once a dma-buf is revoked, new access paths are
> blocked so
> that attempts to DMA-map, vmap, or mmap the buffer fail in a
> consistent way.
This sounds like it does not match how many GPU-drivers use the
move_notify() callback.
move_notify() would typically invalidate any device maps and any
asynchronous part of that invalidation would be complete when the dma-
buf's reservation object becomes idle WRT DMA_RESV_USAGE_BOOKKEEP
fences.
However, the importer could, after obtaining the resv lock, obtain a
new map using dma_buf_map_attachment(), and I'd assume the CPU maps
work in the same way, I.E. move_notify() does not *permanently* revoke
importer access.
/Thomas
>
> Thanks
>
> Cc: linux-media@xxxxxxxxxxxxxxx
> Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> Cc: linaro-mm-sig@xxxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: virtualization@xxxxxxxxxxxxxxx
> Cc: intel-xe@xxxxxxxxxxxxxxxxxxxxx
> Cc: linux-rdma@xxxxxxxxxxxxxxx
> Cc: iommu@xxxxxxxxxxxxxxx
> Cc: kvm@xxxxxxxxxxxxxxx
> To: Sumit Semwal <sumit.semwal@xxxxxxxxxx>
> To: Christian König <christian.koenig@xxxxxxx>
> To: Alex Deucher <alexander.deucher@xxxxxxx>
> To: David Airlie <airlied@xxxxxxxxx>
> To: Simona Vetter <simona@xxxxxxxx>
> To: Gerd Hoffmann <kraxel@xxxxxxxxxx>
> To: Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx>
> To: Gurchetan Singh <gurchetansingh@xxxxxxxxxxxx>
> To: Chia-I Wu <olvaffe@xxxxxxxxx>
> To: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
> To: Maxime Ripard <mripard@xxxxxxxxxx>
> To: Thomas Zimmermann <tzimmermann@xxxxxxx>
> To: Lucas De Marchi <lucas.demarchi@xxxxxxxxx>
> To: Thomas Hellström <thomas.hellstrom@xxxxxxxxxxxxxxx>
> To: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
> To: Jason Gunthorpe <jgg@xxxxxxxx>
> To: Leon Romanovsky <leon@xxxxxxxxxx>
> To: Kevin Tian <kevin.tian@xxxxxxxxx>
> To: Joerg Roedel <joro@xxxxxxxxxx>
> To: Will Deacon <will@xxxxxxxxxx>
> To: Robin Murphy <robin.murphy@xxxxxxx>
> To: Alex Williamson <alex@xxxxxxxxxxx>
>
> ---
> Leon Romanovsky (4):
> dma-buf: Rename .move_notify() callback to a clearer identifier
> dma-buf: Document revoke semantics
> iommufd: Require DMABUF revoke semantics
> vfio: Add pinned interface to perform revoke semantics
>
> drivers/dma-buf/dma-buf.c | 6 +++---
> drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 4 ++--
> drivers/gpu/drm/virtio/virtgpu_prime.c | 2 +-
> drivers/gpu/drm/xe/tests/xe_dma_buf.c | 6 +++---
> drivers/gpu/drm/xe/xe_dma_buf.c | 2 +-
> drivers/infiniband/core/umem_dmabuf.c | 4 ++--
> drivers/infiniband/hw/mlx5/mr.c | 2 +-
> drivers/iommu/iommufd/pages.c | 11 +++++++++--
> drivers/vfio/pci/vfio_pci_dmabuf.c | 16 ++++++++++++++++
> include/linux/dma-buf.h | 25
> ++++++++++++++++++++++---
> 10 files changed, 60 insertions(+), 18 deletions(-)
> ---
> base-commit: 9ace4753a5202b02191d54e9fdf7f9e3d02b85eb
> change-id: 20251221-dmabuf-revoke-b90ef16e4236
>
> Best regards,
> --
> Leon Romanovsky <leonro@xxxxxxxxxx>
>