On Wed, Aug 16, 2017 at 1:10 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> On Wed, Aug 16, 2017 at 9:53 AM, Christian König <christian.koe...@amd.com > > wrote: > >> [SNIP] >> >>> See a wait_queue is a callback mechanism anyway, so you are wrapping a >>>> callback mechanism inside another callback mechanism and that makes not >>>> really much sense. >>>> >>> >>> Fair enough. There is one little snag though: We need to wait on sync >>> objects and fences at the same time in order for WAIT_ANY | WAIT_FOR_SUBMIT >>> to work. I see two options here: >>> >>> 1) Convert dma-fence to use waitqueue instead of its callback mechanism >>> and add a wait_queue_any. A quick grep for dma_fence_add_callback says >>> that this would affect four drivers. >>> >> >> The more I think about it, the less sense using waitqueues makes. The >> fundamental problem here is that the event we are waiting on is actually >> the concatenation of two events: submit and signal. Since we are waiting >> on several of these pairs of concatenated events simultaneously, the only >> two options we have are to either combine them into one event (the proxy >> approach) or to implement a wait which is capable of handling both at the >> same time. I don't see a way to do the latter with wait queues. >> >> >> Agree completely. >> >> Essentially we would need to enable wait_event_* to wait for multiple >> events and then convert all the fence callback stuff to wait_event >> structures. >> >> But that is certainly outside the scope of this patchset, so feel free to >> go ahead with the approach of waiting manually (but please without the >> bugs). >> > > Well, the patches I sent last night should do just that. It's mostly the > original approach but with the bugfixes from versions 3 and 4. Modulo > finding additional bugs, I think they should be good to go. > ping?
_______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel