virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
  • [parent not found: <20220824102248.91964-10-dmitry.osipenko@collabora.com>]
  • * Re: [PATCH v3 0/9] Move all drivers to a common dma-buf locking convention
           [not found] <20220824102248.91964-1-dmitry.osipenko@collabora.com>
           [not found] ` <20220824102248.91964-6-dmitry.osipenko@collabora.com>
           [not found] ` <20220824102248.91964-10-dmitry.osipenko@collabora.com>
    @ 2022-08-24 14:15 ` Christian König
           [not found] ` <20220824102248.91964-7-dmitry.osipenko@collabora.com>
      3 siblings, 0 replies; 9+ messages in thread
    From: Christian König @ 2022-08-24 14:15 UTC (permalink / raw)
      To: Dmitry Osipenko, 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,
    	Pan, Xinhui, Thierry Reding, Tomasz Figa, Marek Szyprowski,
    	Mauro Carvalho Chehab, Alex Deucher, Jani Nikula, Joonas Lahtinen,
    	Rodrigo Vivi, Tvrtko Ursulin, Thomas Hellström, Qiang Yu
      Cc: lima, linux-rdma, linux-arm-msm, intel-gfx, linux-kernel, amd-gfx,
    	virtualization, linaro-mm-sig, dri-devel, Dmitry Osipenko, kernel,
    	linux-media
    
    Reviewed-by: Christian König <christian.koenig@amd.com> to patches #2-#4
    
    Am 24.08.22 um 12:22 schrieb Dmitry Osipenko:
    > 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, Tegra, udmabuf, AMDGPU and Nouveau drivers. I tested cases
    > of display+GPU, display+V4L and GPU+V4L dma-buf sharing (where appropriate),
    > which covers majority of kernel drivers since rest of the drivers share
    > same or similar code paths.
    >
    > Changelog:
    >
    > v3: - Factored out dma_buf_mmap_unlocked() and attachment functions
    >        into aseparate patches, like was suggested by Christian König.
    >
    >      - Corrected and factored out dma-buf locking documentation into
    >        a separate patch, like was suggested by Christian König.
    >
    >      - Intel driver dropped the reservation locking fews days ago from
    >        its BO-release code path, but we need that locking for the imported
    >        GEMs because in the end that code path unmaps the imported GEM.
    >        So I added back the locking needed by the imported GEMs, updating
    >        the "dma-buf attachment locking specification" patch appropriately.
    >
    >      - Tested Nouveau+Intel dma-buf import/export combo.
    >
    >      - Tested udmabuf import to i915/Nouveau/AMDGPU.
    >
    >      - Fixed few places in Etnaviv, Panfrost and Lima drivers that I missed
    >        to switch to locked dma-buf vmapping in the drm/gem: Take reservation
    >        lock for vmap/vunmap operations" patch. In a result invalidated the
    >        Christian's r-b that he gave to v2.
    >
    >      - Added locked dma-buf vmap/vunmap functions that are needed for fixing
    >        vmappping of Etnaviv, Panfrost and Lima drivers mentioned above.
    >        I actually had this change stashed for the drm-shmem shrinker patchset,
    >        but then realized that it's already needed by the dma-buf patches.
    >        Also improved my tests to better cover these code paths.
    >
    > 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 (9):
    >    dma-buf: Add _unlocked postfix to function names
    >    dma-buf: Add locked variant of dma_buf_vmap/vunmap()
    >    drm/gem: Take reservation lock for vmap/vunmap operations
    >    dma-buf: Move dma_buf_vmap/vunmap_unlocked() to dynamic locking
    >      specification
    >    dma-buf: Move dma_buf_mmap_unlocked() to dynamic locking specification
    >    dma-buf: Move dma-buf attachment to dynamic locking specification
    >    dma-buf: Document dynamic locking convention
    >    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                     | 276 ++++++++++++++----
    >   drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.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_dma_helper.c          |   6 +-
    >   drivers/gpu/drm/drm_gem_framebuffer_helper.c  |   6 +-
    >   drivers/gpu/drm/drm_gem_shmem_helper.c        |   2 +-
    >   drivers/gpu/drm/drm_gem_ttm_helper.c          |   9 +-
    >   drivers/gpu/drm/drm_prime.c                   |  12 +-
    >   drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c   |   4 +-
    >   drivers/gpu/drm/exynos/exynos_drm_gem.c       |   2 +-
    >   drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c    |   6 +-
    >   drivers/gpu/drm/i915/gem/i915_gem_object.c    |  12 +
    >   .../drm/i915/gem/selftests/i915_gem_dmabuf.c  |  20 +-
    >   drivers/gpu/drm/lima/lima_sched.c             |   4 +-
    >   drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c     |   8 +-
    >   drivers/gpu/drm/panfrost/panfrost_dump.c      |   4 +-
    >   drivers/gpu/drm/panfrost/panfrost_perfcnt.c   |   6 +-
    >   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                       |  57 ++--
    >   32 files changed, 410 insertions(+), 242 deletions(-)
    >
    
    _______________________________________________
    Virtualization mailing list
    Virtualization@lists.linux-foundation.org
    https://lists.linuxfoundation.org/mailman/listinfo/virtualization
    
    ^ permalink raw reply	[flat|nested] 9+ messages in thread
  • [parent not found: <20220824102248.91964-7-dmitry.osipenko@collabora.com>]

  • end of thread, other threads:[~2022-08-24 17:45 UTC | newest]
    
    Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <20220824102248.91964-1-dmitry.osipenko@collabora.com>
         [not found] ` <20220824102248.91964-6-dmitry.osipenko@collabora.com>
    2022-08-24 14:01   ` [PATCH v3 5/9] dma-buf: Move dma_buf_mmap_unlocked() to dynamic locking specification Christian König via Virtualization
         [not found] ` <20220824102248.91964-10-dmitry.osipenko@collabora.com>
    2022-08-24 14:09   ` [PATCH v3 9/9] dma-buf: Remove internal lock Christian König via Virtualization
    2022-08-24 14:10   ` Christian König via Virtualization
    2022-08-24 14:10   ` Christian König
    2022-08-24 14:15 ` [PATCH v3 0/9] Move all drivers to a common dma-buf locking convention Christian König
         [not found] ` <20220824102248.91964-7-dmitry.osipenko@collabora.com>
    2022-08-24 14:08   ` [PATCH v3 6/9] dma-buf: Move dma-buf attachment to dynamic locking specification Christian König via Virtualization
         [not found]     ` <4af793fd-eccc-ad70-65c3-de78dced71f0@collabora.com>
    2022-08-24 15:14       ` Christian König via Virtualization
    2022-08-24 15:24   ` [Linaro-mm-sig] " Christian König
         [not found]     ` <25d6b7e7-bbcc-7613-42d1-13c2b9ab2937@collabora.com>
    2022-08-24 17:45       ` Christian König via Virtualization
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for NNTP newsgroup(s).