[Intel-gfx] [PATCH 02/10] drm/i915/gt: Always check to enable timeslicing if not submitting

Mika Kuoppala mika.kuoppala at linux.intel.com
Fri Jun 5 15:20:34 UTC 2020


Chris Wilson <chris at chris-wilson.co.uk> writes:

> We may choose not to submit for a number of reasons, yet not fill both
> ELSP. In which case we must start timeslicing (there will be no ACK
> event on which to hook the start) if the queue would benefit from the
> currently active context being evicted.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/gt/intel_lrc.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
> index 92c3368ffcbd..d55a5e0466e5 100644
> --- a/drivers/gpu/drm/i915/gt/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
> @@ -2362,10 +2362,8 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
>  				if (last->context == rq->context)
>  					goto done;
>  
> -				if (i915_request_has_sentinel(last)) {
> -					start_timeslice(engine, rq_prio(rq));
> +				if (i915_request_has_sentinel(last))
>  					goto done;
> -				}
>  
>  				/*
>  				 * If GVT overrides us we only ever submit
> @@ -2446,6 +2444,7 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
>  		set_preempt_timeout(engine, *active);
>  		execlists_submit_ports(engine);
>  	} else {
> +		start_timeslice(engine, execlists->queue_priority_hint);

If we ended up with same set of request, we want to skip submitting.
But why would we want to skip timeslicing?

-Mika

>  skip_submit:
>  		ring_set_paused(engine, 0);
>  	}
> -- 
> 2.20.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list