drm/i915/gt: Set timeslicing priority from queue
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 5 Jun 2020 12:23:25 +0000 (13:23 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 5 Jun 2020 16:18:04 +0000 (17:18 +0100)
If we only submit the first port, leaving the second empty yet have
ready requests pending in the queue, use that to set the timeslicing
priority (i.e. the priority at which we will decided to enabling
timeslicing and evict the currently active context if the queue is of
equal priority after its quantum expired).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200605122334.2798-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_lrc.c

index 33b7173b7195ef46fad41231cc39de99d01d7e89..92c3368ffcbd8c34eca2a46c7948a6c25e6e4268 100644 (file)
@@ -1966,7 +1966,7 @@ static int
 switch_prio(struct intel_engine_cs *engine, const struct i915_request *rq)
 {
        if (list_is_last(&rq->sched.link, &engine->active.requests))
-               return INT_MIN;
+               return engine->execlists.queue_priority_hint;
 
        return rq_prio(list_next_entry(rq, sched.link));
 }