• Daniel Vetter's avatar
    dma-resv: Give the docs a do-over · d9edf92d
    Daniel Vetter authored
    Specifically document the new/clarified rules around how the shared
    fences do not have any ordering requirements against the exclusive
    fence.
    
    But also document all the things a bit better, given how central
    struct dma_resv to dynamic buffer management the docs have been very
    inadequat.
    
    - Lots more links to other pieces of the puzzle. Unfortunately
      ttm_buffer_object has no docs, so no links :-(
    
    - Explain/complain a bit about dma_resv_locking_ctx(). I still don't
      like that one, but fixing the ttm call chains is going to be
      horrible. Plus we want to plug in real slowpath locking when we do
      that anyway.
    
    - Main part of the patch is some actual docs for struct dma_resv.
    
    Overall I think we still have a lot of bad naming in this area (e.g.
    dma_resv.fence is singular, but contains the multiple shared fences),
    but I think that's more indicative of how the semantics and rules are
    just not great.
    
    Another thing that's real awkard is how chaining exclusive fences
    right now means direct dma_resv.exclusive_fence pointer access with an
    rcu_assign_pointer. Not so great either.
    
    v2:
    - Fix a pile of typos (Matt, Jason)
    - Hammer it in that breaking the rules leads to use-after-free issues
      around dma-buf sharing (Christian)
    Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
    Cc: Jason Ekstrand <jason@jlekstrand.net>
    Cc: Matthew Auld <matthew.auld@intel.com>
    Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Cc: Sumit Semwal <sumit.semwal@linaro.org>
    Cc: "Christian König" <christian.koenig@amd.com>
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20210805104705.862416-21-daniel.vetter@ffwll.ch
    d9edf92d
dma-resv.c 17.5 KB