[Intel-gfx] [CI 06/20] drm/i915: Slaughter the thundering i915_wait_request herd

2016-07-01 Thread Chris Wilson
One particularly stressful scenario consists of many independent tasks all competing for GPU time and waiting upon the results (e.g. realtime transcoding of many, many streams). One bottleneck in particular is that each client waits on its own results, but every client is woken up after every batch

Re: [Intel-gfx] [CI 06/20] drm/i915: Slaughter the thundering i915_wait_request herd

2016-06-06 Thread Tvrtko Ursulin
On 06/06/16 11:14, Chris Wilson wrote: On Mon, May 23, 2016 at 09:53:40AM +0100, Tvrtko Ursulin wrote: On 20/05/16 13:19, Chris Wilson wrote: On Fri, May 20, 2016 at 01:04:13PM +0100, Tvrtko Ursulin wrote: + p = &b->waiters.rb_node; + while (*p) { + parent = *p; +

Re: [Intel-gfx] [CI 06/20] drm/i915: Slaughter the thundering i915_wait_request herd

2016-06-06 Thread Chris Wilson
On Mon, May 23, 2016 at 09:53:40AM +0100, Tvrtko Ursulin wrote: > > On 20/05/16 13:19, Chris Wilson wrote: > >On Fri, May 20, 2016 at 01:04:13PM +0100, Tvrtko Ursulin wrote: > >>>+ p = &b->waiters.rb_node; > >>>+ while (*p) { > >>>+ parent = *p; > >>>+ if (wait->seqno == to_wai

Re: [Intel-gfx] [CI 06/20] drm/i915: Slaughter the thundering i915_wait_request herd

2016-05-23 Thread Tvrtko Ursulin
On 20/05/16 13:19, Chris Wilson wrote: On Fri, May 20, 2016 at 01:04:13PM +0100, Tvrtko Ursulin wrote: + p = &b->waiters.rb_node; + while (*p) { + parent = *p; + if (wait->seqno == to_wait(parent)->seqno) { + /* We have multiple wait

Re: [Intel-gfx] [CI 06/20] drm/i915: Slaughter the thundering i915_wait_request herd

2016-05-20 Thread Chris Wilson
On Fri, May 20, 2016 at 01:04:13PM +0100, Tvrtko Ursulin wrote: > >+p = &b->waiters.rb_node; > >+while (*p) { > >+parent = *p; > >+if (wait->seqno == to_wait(parent)->seqno) { > >+/* We have multiple waiters on the same seqno, select > >+

Re: [Intel-gfx] [CI 06/20] drm/i915: Slaughter the thundering i915_wait_request herd

2016-05-20 Thread Tvrtko Ursulin
On 19/05/16 12:32, Chris Wilson wrote: One particularly stressful scenario consists of many independent tasks all competing for GPU time and waiting upon the results (e.g. realtime transcoding of many, many streams). One bottleneck in particular is that each client waits on its own results, but

[Intel-gfx] [CI 06/20] drm/i915: Slaughter the thundering i915_wait_request herd

2016-05-19 Thread Chris Wilson
One particularly stressful scenario consists of many independent tasks all competing for GPU time and waiting upon the results (e.g. realtime transcoding of many, many streams). One bottleneck in particular is that each client waits on its own results, but every client is woken up after every batch