Quoting Michel Thierry (2018-02-02 16:49:49) > On 2/2/2018 6:54 AM, Chris Wilson wrote: > > Be paranoid and flush the GTIIR after clearing the CS interrupt to be > > sure it has taken before we re-enable the interrupt handler. We still > > see early interrupts following reset, the tasklet handling the mmio read > > before it has been written by the CS. This hopefully reduces the > > frequency to 0... > > > > References: https://bugs.freedesktop.org/show_bug.cgi?id=104262 > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > > Cc: Michel Thierry <michel.thierry@xxxxxxxxx> > > Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > > --- > > drivers/gpu/drm/i915/intel_lrc.c | 13 +++++++++---- > > 1 file changed, 9 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c > > index 40dbeaee9dfa..deeedfc9fe44 100644 > > --- a/drivers/gpu/drm/i915/intel_lrc.c > > +++ b/drivers/gpu/drm/i915/intel_lrc.c > > @@ -1527,6 +1527,7 @@ static int gen9_init_render_ring(struct intel_engine_cs *engine) > > static void reset_irq(struct intel_engine_cs *engine) > > { > > struct drm_i915_private *dev_priv = engine->i915; > > + int i; > > > > /* > > * Clear any pending interrupt state. > > @@ -1535,10 +1536,14 @@ static void reset_irq(struct intel_engine_cs *engine) > > * buffered, and if we only reset it once there may still be > > * an interrupt pending. > > */ > > - I915_WRITE(GEN8_GT_IIR(gtiir[engine->id]), > > - GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift); > > - I915_WRITE(GEN8_GT_IIR(gtiir[engine->id]), > > - GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift); > > + for (i = 0; i < 2; i++) { > > + I915_WRITE(GEN8_GT_IIR(gtiir[engine->id]), > > + GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift); > > + POSTING_READ(GEN8_GT_IIR(gtiir[engine->id])); > > + } > > + GEM_BUG_ON(I915_READ(GEN8_GT_IIR(gtiir[engine->id])) & > > + (GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift)); > > + > > clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted); > > } > > > > > > Acked-by: Michel Thierry <michel.thierry@xxxxxxxxx> Ta. Afaict, it's a timing issue and this is helping paper over it. Not a fix, but maybe an indicator for someone to find the real problem? -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx