Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > This reapplies commit 39f3be162c46 ("drm/i915: Kick waiters on resetting > legacy rings") after the improved gem_eio was run across all machines we > found that gen3 and early gen4 still lost the immediate interrupt > following reset, and the HWSTAM w/a applied to gen6+ is inadequate. > > Unlike the later gen, on gen3/4 the principle (and only tests to fail so > far) are the wait vs reset test cases, whereas the reset stress case > works fine (which was the predominantly failing case for gen6+). That is > enough to suggest the underlying issue is sufficiently different to > support the difference in HWSTAM efficacy. > > Testcase: igt/gem_eio/wait-10ms > References: 39f3be162c46 ("drm/i915: Kick waiters on resetting legacy rings") > References: a69ab52b0358 ("drm/i915: Remove extra waiter kick on legacy resets") > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Matthew Auld <matthew.auld@xxxxxxxxx> > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_ringbuffer.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c > index b65cf7832b39..d40f55a8dc34 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > @@ -537,6 +537,8 @@ 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)); > > + /* Papering over lost _interrupts_ immediately following the restart */ > + intel_engine_wakeup(engine); We came, we toggled, we learned. Onwards! Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > out: > intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); > > -- > 2.18.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx