drm/i915/gt: Start timeslice on partial submission
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 28 May 2020 20:57:27 +0000 (21:57 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 28 May 2020 22:41:13 +0000 (23:41 +0100)
We may choose to only submit ELSP[0], even though we have sufficient
requests to fill the whole ELSP. Normally, we only start timeslicing if
we fill more than one port, but in this case we need to start
timeslicing for the queue that we choose not to submit.

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

index 69fff36..6fc0966 100644 (file)
@@ -2358,8 +2358,10 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
                                if (last->context == rq->context)
                                        goto done;
 
-                               if (i915_request_has_sentinel(last))
+                               if (i915_request_has_sentinel(last)) {
+                                       start_timeslice(engine, rq_prio(rq));
                                        goto done;
+                               }
 
                                /*
                                 * If GVT overrides us we only ever submit