Use dma_fence_array for implementing shared dma_resv fences

Christian König ckoenig.leichtzumerken at gmail.com
Mon Aug 26 14:57:22 UTC 2019


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.

Please review and/or comment,
Christian.




More information about the dri-devel mailing list