All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Move all drivers to a common dma-buf locking convention
@ 2022-07-25 15:18 ` Dmitry Osipenko
  0 siblings, 0 replies; 54+ messages in thread
From: Dmitry Osipenko @ 2022-07-25 15:18 UTC (permalink / raw)
  To: David Airlie, Gerd Hoffmann, Gurchetan Singh, Chia-I Wu,
	Daniel Vetter, Daniel Almeida, Gert Wollny, Gustavo Padovan,
	Daniel Stone, Tomeu Vizoso, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, Rob Clark, Sumit Semwal, Christian König,
	Pan, Xinhui, Thierry Reding, Tomasz Figa, Marek Szyprowski,
	Mauro Carvalho Chehab, Alex Deucher, Jani Nikula,
	Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
	Thomas Hellström
  Cc: linux-rdma, linux-arm-msm, intel-gfx, linux-kernel, amd-gfx,
	virtualization, linaro-mm-sig, dri-devel, spice-devel,
	Dmitry Osipenko, kernel, linux-media

Hello,

This series moves all drivers to a dynamic dma-buf locking specification.
From now on all dma-buf importers are made responsible for holding
dma-buf's reservation lock around all operations performed over dma-bufs
in accordance to the locking specification. This allows us to utilize
reservation lock more broadly around kernel without fearing of a potential
deadlocks.

This patchset passes all i915 selftests. It was also tested using VirtIO,
Panfrost, Lima and Tegra drivers. I tested cases of display+GPU,
display+V4L and GPU+V4L dma-buf sharing, which covers majority of kernel
drivers since rest of the drivers share same or similar code paths.

Changelog:

v2: - Changed locking specification to avoid problems with a cross-driver
      ww locking, like was suggested by Christian König. Now the attach/detach
      callbacks are invoked without the held lock and exporter should take the
      lock.

    - Added "locking convention" documentation that explains which dma-buf
      functions and callbacks are locked/unlocked for importers and exporters,
      which was requested by Christian König.

    - Added ack from Tomasz Figa to the V4L patches that he gave to v1.

Dmitry Osipenko (5):
  dma-buf: Add _unlocked postfix to function names
  drm/gem: Take reservation lock for vmap/vunmap operations
  dma-buf: Move all dma-bufs to dynamic locking specification
  media: videobuf2: Stop using internal dma-buf lock
  dma-buf: Remove internal lock

 Documentation/driver-api/dma-buf.rst          |   6 +
 drivers/dma-buf/dma-buf.c                     | 253 +++++++++++++-----
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c   |   4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c       |   4 +-
 drivers/gpu/drm/armada/armada_gem.c           |  14 +-
 drivers/gpu/drm/drm_client.c                  |   4 +-
 drivers/gpu/drm/drm_gem.c                     |  24 ++
 drivers/gpu/drm/drm_gem_cma_helper.c          |   6 +-
 drivers/gpu/drm/drm_gem_framebuffer_helper.c  |   6 +-
 drivers/gpu/drm/drm_gem_shmem_helper.c        |   6 +-
 drivers/gpu/drm/drm_prime.c                   |  12 +-
 drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c   |   6 +-
 drivers/gpu/drm/exynos/exynos_drm_gem.c       |   2 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c    |  14 +-
 .../drm/i915/gem/selftests/i915_gem_dmabuf.c  |  20 +-
 drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c     |   8 +-
 drivers/gpu/drm/qxl/qxl_object.c              |  17 +-
 drivers/gpu/drm/qxl/qxl_prime.c               |   4 +-
 drivers/gpu/drm/tegra/gem.c                   |  27 +-
 drivers/infiniband/core/umem_dmabuf.c         |  11 +-
 .../common/videobuf2/videobuf2-dma-contig.c   |  26 +-
 .../media/common/videobuf2/videobuf2-dma-sg.c |  23 +-
 .../common/videobuf2/videobuf2-vmalloc.c      |  17 +-
 .../platform/nvidia/tegra-vde/dmabuf-cache.c  |  12 +-
 drivers/misc/fastrpc.c                        |  12 +-
 drivers/xen/gntdev-dmabuf.c                   |  14 +-
 include/drm/drm_gem.h                         |   3 +
 include/linux/dma-buf.h                       |  71 ++---
 28 files changed, 372 insertions(+), 254 deletions(-)

-- 
2.36.1


^ permalink raw reply	[flat|nested] 54+ messages in thread

end of thread, other threads:[~2022-08-15 13:20 UTC | newest]

Thread overview: 54+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-25 15:18 [PATCH v2 0/5] Move all drivers to a common dma-buf locking convention Dmitry Osipenko
2022-07-25 15:18 ` [Intel-gfx] " Dmitry Osipenko
2022-07-25 15:18 ` Dmitry Osipenko
2022-07-25 15:18 ` [PATCH v2 1/5] dma-buf: Add _unlocked postfix to function names Dmitry Osipenko
2022-07-25 15:18   ` [Intel-gfx] " Dmitry Osipenko
2022-07-25 15:18   ` Dmitry Osipenko
2022-08-09 11:56   ` [Linaro-mm-sig] " Christian König
2022-08-09 11:56     ` [Intel-gfx] " Christian König
2022-08-09 11:56     ` Christian König
2022-08-09 11:56     ` Christian König
2022-07-25 15:18 ` [PATCH v2 2/5] drm/gem: Take reservation lock for vmap/vunmap operations Dmitry Osipenko
2022-07-25 15:18   ` [Intel-gfx] " Dmitry Osipenko
2022-07-25 15:18   ` Dmitry Osipenko
2022-08-09 12:22   ` [Linaro-mm-sig] " Christian König
2022-08-09 12:22     ` [Intel-gfx] " Christian König
2022-08-09 12:22     ` Christian König
2022-08-09 12:22     ` Christian König
2022-07-25 15:18 ` [PATCH v2 3/5] dma-buf: Move all dma-bufs to dynamic locking specification Dmitry Osipenko
2022-07-25 15:18   ` [Intel-gfx] " Dmitry Osipenko
2022-07-25 15:18   ` Dmitry Osipenko
2022-08-10 11:30   ` [Linaro-mm-sig] " Christian König
2022-08-10 11:30     ` [Intel-gfx] " Christian König
2022-08-10 11:30     ` Christian König
2022-08-10 11:30     ` Christian König
2022-08-10 17:49     ` Dmitry Osipenko
2022-08-10 17:49       ` [Intel-gfx] " Dmitry Osipenko
2022-08-10 17:49       ` Dmitry Osipenko
2022-08-10 18:25       ` Christian König
2022-08-10 18:25         ` [Intel-gfx] " Christian König
2022-08-10 18:25         ` Christian König
2022-08-10 18:25         ` Christian König via Virtualization
2022-08-10 18:53         ` Dmitry Osipenko
2022-08-10 18:53           ` [Intel-gfx] " Dmitry Osipenko
2022-08-10 18:53           ` Dmitry Osipenko
2022-08-10 18:53           ` Dmitry Osipenko
2022-08-12 11:34           ` Christian König
2022-08-12 11:34             ` [Intel-gfx] " Christian König
2022-08-12 11:34             ` Christian König
2022-08-12 11:34             ` Christian König
2022-08-12 11:34             ` Christian König
2022-08-12 11:46             ` Dmitry Osipenko
2022-08-12 11:46               ` [Intel-gfx] " Dmitry Osipenko
2022-08-12 11:46               ` Dmitry Osipenko
2022-08-12 11:46               ` Dmitry Osipenko
2022-08-10 17:51     ` Dmitry Osipenko
2022-08-10 17:51       ` [Intel-gfx] " Dmitry Osipenko
2022-08-10 17:51       ` Dmitry Osipenko
2022-07-25 15:18 ` [PATCH v2 4/5] media: videobuf2: Stop using internal dma-buf lock Dmitry Osipenko
2022-07-25 15:18   ` [Intel-gfx] " Dmitry Osipenko
2022-07-25 15:18   ` Dmitry Osipenko
2022-07-25 15:18 ` [PATCH v2 5/5] dma-buf: Remove internal lock Dmitry Osipenko
2022-07-25 15:18   ` [Intel-gfx] " Dmitry Osipenko
2022-07-25 15:18   ` Dmitry Osipenko
2022-08-04 15:45 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Move all drivers to a common dma-buf locking convention Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.