[Intel-gfx] [PATCH 08/13] drm/i915: Drive request submission through fence callbacks

Chris Wilson chris at chris-wilson.co.uk
Thu Aug 25 12:35:30 UTC 2016


On Thu, Aug 25, 2016 at 03:08:58PM +0300, Joonas Lahtinen wrote:
> On to, 2016-08-25 at 10:08 +0100, Chris Wilson wrote:
> > @@ -462,7 +462,10 @@ static int intel_breadcrumbs_signaler(void *arg)
> >  			 */
> >  			intel_engine_remove_wait(engine,
> >  						 &request->signaling.wait);
> > +
> > +			local_bh_disable();
> >  			fence_signal(&request->fence);
> > +			local_bh_enable(); /* kick start the tasklets */
> 
> Why disable bottom half processing around here too?

It is to reduce the latency of running the execlists tasklet after
submitting the request. fence_signal using an irq spinlock and so
doesn't fire off sortirqs - but if we are waking up this engine after an
inter-engine/cross-driver wait, that delay can cause a throughput drop
of about 30% due to the increased latency.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list