<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [ivb gt2] GPU hangs in 4.0: where did my seqno writes go?"
href="https://bugs.freedesktop.org/show_bug.cgi?id=89467#c54">Comment # 54</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [ivb gt2] GPU hangs in 4.0: where did my seqno writes go?"
href="https://bugs.freedesktop.org/show_bug.cgi?id=89467">bug 89467</a>
from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
<pre>I don't have a good explanation, but we may as well try punching a few things
and see what we can break:
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c
b/drivers/gpu/drm/i915/intel_ringbuffer.c
index e5b3c6dbd467..c972f24d50cc 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1087,18 +1087,20 @@ gen6_add_request(struct intel_engine_cs *ring)
int ret;
if (ring->semaphore.signal)
- ret = ring->semaphore.signal(ring, 4);
+ ret = ring->semaphore.signal(ring, 6);
else
- ret = intel_ring_begin(ring, 4);
+ ret = intel_ring_begin(ring, 6);
if (ret)
return ret;
+ intel_ring_emit(ring, MI_ARB_ON_OFF | MI_ARB_DISABLE);
intel_ring_emit(ring, MI_STORE_DWORD_INDEX);
intel_ring_emit(ring, I915_GEM_HWS_INDEX <<
MI_STORE_DWORD_INDEX_SHIFT);
intel_ring_emit(ring,
i915_gem_request_get_seqno(ring->outstanding_lazy_request));
intel_ring_emit(ring, MI_USER_INTERRUPT);
+ intel_ring_emit(ring, MI_ARB_ON_OFF | MI_ARB_ENABLE);
__intel_ring_advance(ring);
return 0;</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are on the CC list for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>