diff mbox series

[1/2] drm/i915: Kick waiters on resetting legacy rings

Message ID 20180730075351.15569-2-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series [1/2] drm/i915: Kick waiters on resetting legacy rings | expand

Commit Message

Chris Wilson July 30, 2018, 7:53 a.m. UTC
For reasons unknown, interrupts following a reset do not arrive, but
this can be papered over by kicking any waiter and peeking at the
breadcrumbs following the reset.

Testcase: igt/gem_eio/reset-stress
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/intel_ringbuffer.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Matthew Auld July 30, 2018, 9:27 a.m. UTC | #1
On 30 July 2018 at 08:53, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> For reasons unknown, interrupts following a reset do not arrive, but
> this can be papered over by kicking any waiter and peeking at the
> breadcrumbs following the reset.
>
> Testcase: igt/gem_eio/reset-stress
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Matthew Auld <matthew.auld@intel.com>
Chris Wilson July 30, 2018, 9:39 a.m. UTC | #2
Quoting Matthew Auld (2018-07-30 10:27:00)
> On 30 July 2018 at 08:53, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> > For reasons unknown, interrupts following a reset do not arrive, but
> > this can be papered over by kicking any waiter and peeking at the
> > breadcrumbs following the reset.
> >
> > Testcase: igt/gem_eio/reset-stress
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Acked-by: Matthew Auld <matthew.auld@intel.com>

Very sensible to ack a band-aid :)
Fortunately it has virtually no cost, so even if we do find the true
cause for the GPU not delivering the interrupts, it can live on.

Pushed as the patches passed full CI earlier, thanks.
-Chris
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index d1e03b7fbffa..c03f4fa4f350 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -527,6 +527,7 @@  static int init_ring_common(struct intel_engine_cs *engine)
 	if (INTEL_GEN(dev_priv) > 2)
 		I915_WRITE_MODE(engine, _MASKED_BIT_DISABLE(STOP_RING));
 
+	intel_engine_wakeup(engine);
 out:
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);