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