Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Quoting Mika Kuoppala (2019-08-15 12:35:37) >> Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: >> >> > Since __i915_request_queue() may be called from hardirq (timer) context, >> > we cannot use local_bh_disable/enable at the lower level. As we do want >> > to kick the tasklet to speed up initial submission or preemption for >> > normal client submission, lift it to the normal process context >> > callpath. >> > >> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> >> > --- >> > drivers/gpu/drm/i915/i915_request.c | 4 ++-- >> > 1 file changed, 2 insertions(+), 2 deletions(-) >> > >> > diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c >> > index 4021334dd2c5..8a2bc1d317e4 100644 >> > --- a/drivers/gpu/drm/i915/i915_request.c >> > +++ b/drivers/gpu/drm/i915/i915_request.c >> > @@ -1203,12 +1203,10 @@ void __i915_request_queue(struct i915_request *rq, >> > * decide whether to preempt the entire chain so that it is ready to >> > * run at the earliest possible convenience. >> > */ >> > - local_bh_disable(); >> > i915_sw_fence_commit(&rq->semaphore); >> > if (attr && rq->engine->schedule) >> > rq->engine->schedule(rq, attr); >> > i915_sw_fence_commit(&rq->submit); >> > - local_bh_enable(); /* Kick the execlists tasklet if just scheduled */ >> >> Was this here to only optimize the latency from schedule >> to resubmission? > > It's only for latency minimisation. If we don't do it now, the > raise_softirq will not be until the process hits the scheduler. > > Fence -> backend is all irq-spinlocks. Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx