[Bug 80709] GPU HANG: ecode 0:0xf4e9fffe, in X [19246], reason: Ring hung, action: reset
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Mon Jun 30 09:33:57 PDT 2014
https://bugs.freedesktop.org/show_bug.cgi?id=80709
--- Comment #1 from Chris Wilson <chris at chris-wilson.co.uk> ---
Try:
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 0edc97f..9e5a295 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2852,7 +2852,7 @@ static int semaphore_passed(struct intel_engine_cs *ring)
{
struct drm_i915_private *dev_priv = ring->dev->dev_private;
struct intel_engine_cs *signaller;
- u32 seqno, ctl;
+ u32 seqno;
ring->hangcheck.deadlock++;
@@ -2860,19 +2860,20 @@ static int semaphore_passed(struct intel_engine_cs
*ring)
if (signaller == NULL)
return -1;
+ printk("%s waiting on %s [recursion depth %d], seqno 0x%x [current
0x%x]\n",
+ ring->name, signaller->name, signaller->hangcheck.deadlock,
+ seqno, signaller->get_seqno(signaller, false));
+
/* Prevent pathological recursion due to driver bugs */
if (signaller->hangcheck.deadlock >= I915_NUM_RINGS)
return -1;
- /* cursory check for an unkickable deadlock */
- ctl = I915_READ_CTL(signaller);
- if (ctl & RING_WAIT_SEMAPHORE && semaphore_passed(signaller) < 0)
- return -1;
-
if (i915_seqno_passed(signaller->get_seqno(signaller, false), seqno))
return 1;
- if (signaller->hangcheck.deadlock)
+ /* cursory check for an unkickable deadlock */
+ if (I915_READ_CTL(signaller) & RING_WAIT_SEMAPHORE &&
+ semaphore_passed(signaller) < 0)
return -1;
return 0;
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20140630/58cb2152/attachment-0001.html>
More information about the intel-gfx-bugs
mailing list