[Intel-gfx] [PATCH] RFC drm/i915: Slaughter the thundering i915_wait_request herd
John Harrison
John.C.Harrison at Intel.com
Fri Nov 27 07:23:02 PST 2015
On 27/11/2015 14:10, Chris Wilson wrote:
> On Fri, Nov 27, 2015 at 01:53:34PM +0000, Tvrtko Ursulin wrote:
>> P.S. And just realised this work is competing with the scheduler
>> which changes all this again.
> On the other hand, there are regressions to be solved before more
> features.
> -Chris
>
Had a quick discussion with Tvrtko about this. It sounds like this
change will cause lots of problems for the scheduler work. Specifically,
seqnos only get allocated when requests are actually sent to the
hardware and if a request is pre-empted and kicked off the hardware then
it's seqno will be reset to zero before being re-allocated when the
request is resubmitted. This bouncing of seqnos will cause major
problems for the tree structure?
However, the struct fence conversion patches could potentially solve the
whole problem in a simpler manner. The fence conversion would allow the
wait_request function to simply register a callback on the fence and
then only be woken up when that specific fence is signaled. The
signalling code already tracks exactly which requests are running on the
hardware, currently as a list but it should be easy enough to convert to
the tree structure as per this patch. There is only one place that wakes
up and processes the to-be-signaled list which would then run the
callback only for those requests that have actually completed. Hence no
thundering herd of wakeups.
John.
More information about the Intel-gfx
mailing list