[1/2] drm/i915/execlists: Tweak priority hint to use last port if set
diff mbox series

Message ID 20191130122445.1637141-1-chris@chris-wilson.co.uk
State New
Headers show
  • [1/2] drm/i915/execlists: Tweak priority hint to use last port if set
Related show

Commit Message

Chris Wilson Nov. 30, 2019, 12:24 p.m. UTC
We use the priority hint to decide if it is worth resubmitting in order
to replace the currently contexts with new requests. If we have left a
port open, the hint should be taken from the top of the queue (as that
is the highest priority request that should be sent next but for
whatever reason could not be). However, if we have filled the second
submission port, that represents the lowest priority of the currently
executing requests and we do not need to kick the submission tasklet
unless we have something that is of higher priority.  This just removes a
few useless kicks and queuing of the submission tasklet.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
 drivers/gpu/drm/i915/gt/intel_lrc.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff mbox series

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
index fef4b7e823f5..145f96cba35f 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1980,10 +1980,8 @@  static void execlists_dequeue(struct intel_engine_cs *engine)
 	 * request triggering preemption on the next dequeue (or subsequent
 	 * interrupt for secondary ports).
-	execlists->queue_priority_hint = queue_prio(execlists);
-	GEM_TRACE("%s: queue_priority_hint:%d, submit:%s\n",
-		  engine->name, execlists->queue_priority_hint,
-		  yesno(submit));
+	execlists->queue_priority_hint =
+		port == last_port ? rq_prio(last) : queue_prio(execlists);
 	if (submit) {
 		*port = execlists_schedule_in(last, port - execlists->pending);