Yo Christian,
I'd like to discuss the dma_fence fast path optimization
(ops.is_signaled) again.
As far as I understand by now, the use case is that some drivers will
never signal fences; but the consumer of the fence actively polls
whether a fence is signaled or not.
Right?
I have a bunch of questions regarding that:
1. What does the party polling the fence typically look like? I bet
it's not userspace, is it? Userspace I'd expect to use poll() on
a FD, thus an underlying driver has to check the fence somehow.
2. What if that party checks the fence, determines it is unsignaled?
Will it then again try later?
3. If it tries again later anyways, then what is the problem with
the fence-issuing driver itself checking every 5, 10 or 50
milliseconds what the counter in the GPU ring buffer is, and then
signals all those fences?
So it circles around the question why ops.is_signaled is supposedly
unavoidable.
Regards
P.