All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/7] drm/i915/execlists: Skip lite restore on the currently executing request
@ 2018-04-25 10:52 Chris Wilson
  2018-04-25 10:52 ` [PATCH 2/7] drm/i915: Stop tracking timeline->inflight_seqnos Chris Wilson
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Chris Wilson @ 2018-04-25 10:52 UTC (permalink / raw)
  To: intel-gfx

When WaIdleLiteRestore isn't enough.
---
 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 029901a8fa38..5c50263e45d3 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -639,6 +639,19 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
 		if (port_count(&port[1]))
 			goto unlock;
 
+		/*
+		 * Skip invoking a lite-restore if we know we have already
+		 * started processing the last request queued to HW. This
+		 * prevents a mystery *unrecoverable* hang on gen8, maybe
+		 * related to updating TAIL within a cacheline of HEAD? (As
+		 * there is still a delay between submitting the ESLP update
+		 * and HW responding, we may still encounter whatever condition
+		 * trips up, just less often.)
+		 */
+		if (i915_seqno_passed(intel_engine_get_seqno(engine),
+				      last->global_seqno - 1))
+			goto unlock;
+
 		/*
 		 * WaIdleLiteRestore:bdw,skl
 		 * Apply the wa NOOPs to prevent
-- 
2.17.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-04-25 12:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-25 10:52 [PATCH 1/7] drm/i915/execlists: Skip lite restore on the currently executing request Chris Wilson
2018-04-25 10:52 ` [PATCH 2/7] drm/i915: Stop tracking timeline->inflight_seqnos Chris Wilson
2018-04-25 10:52 ` [PATCH 3/7] drm/i915: Retire requests along rings Chris Wilson
2018-04-25 10:52 ` [PATCH 4/7] drm/i915: Only track live rings for retiring Chris Wilson
2018-04-25 10:52 ` [PATCH 5/7] drm/i915: Move timeline from GTT to ring Chris Wilson
2018-04-25 10:52 ` [PATCH 6/7] drm/i915: Split i915_gem_timeline into individual timelines Chris Wilson
2018-04-25 10:52 ` [PATCH 7/7] drm/i915: Lazily unbind vma on close Chris Wilson
2018-04-25 11:55 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/7] drm/i915/execlists: Skip lite restore on the currently executing request Patchwork
2018-04-25 11:57 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-04-25 12:10 ` ✗ Fi.CI.BAT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.