Use dma_fence_array for implementing shared dma_resv fences

Daniel Vetter daniel at
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

More information about the dri-devel mailing list