[Intel-gfx] [CI 03/21] drm/i915/execlists: Skip a lite-restore immediately prior to a context-completion
Chris Wilson
chris at chris-wilson.co.uk
Sun Nov 19 14:31:55 UTC 2017
If we are about to do another context-switch in the near future skip
doing performing a lite-restore now. (Forcing a lite-restore just before
a context-switch effectively doubles the cost of that context-switch, so
long as we can handle the interrupt and resubmit before the GPU powers
down, which under normal conditions is expected.)
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
drivers/gpu/drm/i915/intel_lrc.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 6191a2e59e8a..2edd57b3d53e 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -628,6 +628,19 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
if (port_count(&port[1]))
goto unlock;
+ /*
+ * If we are about to do another context-switch in
+ * the near future skip doing performing a lite-restore
+ * now. (Forcing a lite-restore just before a
+ * context-switch effectively doubles the cost of that
+ * context-switch, so long as we can handle the
+ * interrupt and resubmit before the GPU powers down,
+ * which under normal conditions is expected.)
+ */
+ if (i915_seqno_passed(intel_engine_get_seqno(engine),
+ last->global_seqno - 1))
+ goto unlock;
+
/* WaIdleLiteRestore:bdw,skl
* Apply the wa NOOPs to prevent
* ring:HEAD == req:TAIL as we resubmit the
--
2.15.0
More information about the Intel-gfx
mailing list