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 33b7173..92c3368 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));
 }