Use dma_fence_array for implementing shared dma_resv fences

Daniel Vetter daniel at ffwll.ch
Tue Aug 27 16:37:41 UTC 2019


On Mon, Aug 26, 2019 at 04:57:22PM +0200, Christian König wrote:
> This is the new dma_fence_array based container for shared fences in the
> dma_resv object.
> 
> Advantage of this approach is that you can grab a reference to the
> current set of shared fences at any time, which allows us to drop the
> sequence number increment and makes the whole RCU handling much more
> easier.
> 
> Disadvantage is that RCU users now have to grab a reference instead of
> using the sequence counter. As far as I can see i915 was actually the
> only driver doing this.
> 
> So we optimize for adding more fences instead of reading them now.
> 
> Another behavior change worth noting is that the shared fences are now
> only visible after unlocking the dma_resv object or calling
> dma_resv_fences_commit() manually.

I think more specific point for publishing fences makes a lot of sense, so
this sounds like a solid improvement on the dma_resv api. I'm working on
some dma_fence instrumentation where that at least might be useful.

/me back to burried state

Cheers, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list