Re: [PATCH v1 0/6] Move all drivers to a common dma-buf locking convention

From: Tomasz Figa
Date: Tue Jul 19 2022 - 05:14:18 EST


On Fri, Jul 15, 2022 at 9:53 AM Dmitry Osipenko
<dmitry.osipenko@xxxxxxxxxxxxx> wrote:
>
> 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.
> This common locking convention allows us to utilize reservation lock more
> broadly around kernel without fearing of potential dead locks.
>
> 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.
>
> This is a continuation of [1] where Christian König asked to factor out
> the dma-buf locking changes into separate series.
>
> [1] https://lore.kernel.org/dri-devel/20220526235040.678984-1-dmitry.osipenko@xxxxxxxxxxxxx/
>
> Dmitry Osipenko (6):
> 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
> dma-buf: Acquire wait-wound context on attachment
> media: videobuf2: Stop using internal dma-buf lock
> dma-buf: Remove internal lock
>
> drivers/dma-buf/dma-buf.c | 198 +++++++++++-------
> 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 | 28 +++
> 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 | 20 +-
> .../gpu/drm/i915/gem/i915_gem_execbuffer.c | 2 +-
> drivers/gpu/drm/i915/gem/i915_gem_object.h | 6 +-
> .../drm/i915/gem/selftests/i915_gem_dmabuf.c | 20 +-
> drivers/gpu/drm/i915/i915_gem_evict.c | 2 +-
> drivers/gpu/drm/i915/i915_gem_ww.c | 26 ++-
> drivers/gpu/drm/i915/i915_gem_ww.h | 15 +-
> 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 +-

For the videobuf2 changes:

Acked-by: Tomasz Figa <tfiga@xxxxxxxxxxxx>

Best regards,
Tomasz