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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx