[SNIP]
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 if you got a student/interim with free time that would
certainly be a nice cleanup task to start on kernel work.
Regards,
Christian.