Re: [PATCH] RFC drm/i915: Slaughter the thundering i915_wait_request herd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux