[Intel-gfx] [PATCH 5/8] drm/i915: Rely on direct submission to the queue

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Mon Mar 23 10:29:40 UTC 2020


On 23/03/2020 09:28, Chris Wilson wrote:
> Drop the pretense of kicking the tasklet (used only for the defunct guc
> submission backend, it should just take ownership of the submit!) and so
> remove the bh-kicking from around submission.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>   drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 2 --
>   drivers/gpu/drm/i915/gt/intel_lrc.c            | 5 +----
>   drivers/gpu/drm/i915/i915_request.c            | 2 --
>   3 files changed, 1 insertion(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> index 36d069504836..c2bd5accde0c 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> @@ -2348,9 +2348,7 @@ static void eb_request_add(struct i915_execbuffer *eb)
>   		__i915_request_skip(rq);
>   	}
>   
> -	local_bh_disable();
>   	__i915_request_queue(rq, &attr);
> -	local_bh_enable(); /* Kick the execlists tasklet if just scheduled */
>   
>   	/* Try to clean up the client's timeline after submitting the request */
>   	if (prev)
> diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
> index f09dd87324b9..210f60e14ef4 100644
> --- a/drivers/gpu/drm/i915/gt/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
> @@ -2891,10 +2891,7 @@ static void __submit_queue_imm(struct intel_engine_cs *engine)
>   	if (reset_in_progress(execlists))
>   		return; /* defer until we restart the engine following reset */
>   
> -	if (execlists->tasklet.func == execlists_submission_tasklet)
> -		__execlists_submission_tasklet(engine);
> -	else
> -		tasklet_hi_schedule(&execlists->tasklet);
> +	__execlists_submission_tasklet(engine);
>   }
>   
>   static void submit_queue(struct intel_engine_cs *engine,
> diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
> index c0df71d7d0ff..3388c5b610c5 100644
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -1444,9 +1444,7 @@ void i915_request_add(struct i915_request *rq)
>   	if (list_empty(&rq->sched.signalers_list))
>   		attr.priority |= I915_PRIORITY_WAIT;
>   
> -	local_bh_disable();
>   	__i915_request_queue(rq, &attr);
> -	local_bh_enable(); /* Kick the execlists tasklet if just scheduled */
>   
>   	mutex_unlock(&tl->mutex);
>   }
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list