Message ID | 20180807222358.16366-2-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] drm/i915: Unmask user interrupts writes into HWSP on snb/ivb/vlv/hsw | expand |
Chris Wilson <chris@chris-wilson.co.uk> writes: > Now with a more efficacious workaround for the lost interrupts after > reset, we can remove the hack of kicking the waiters after reset. The > issue was that the kick only worked for the immediate window after the > reset (those seqno that would complete in the time it took for the > waiter thread to perform its check) but miss any seqno that lacked an > interrupt afterwards. > > References: 39f3be162c46 ("drm/i915: Kick waiters on resetting legacy rings") > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Matthew Auld <matthew.auld@intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Hack or a safety mechanism... But if we have straightened out the dents in here, more strict discipline is ok. Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > --- > drivers/gpu/drm/i915/intel_ringbuffer.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c > index 9b526b0f755a..2702347f9433 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > @@ -527,8 +527,6 @@ 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); > out: > intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); > > -- > 2.18.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 9b526b0f755a..2702347f9433 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -527,8 +527,6 @@ 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); out: intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
Now with a more efficacious workaround for the lost interrupts after reset, we can remove the hack of kicking the waiters after reset. The issue was that the kick only worked for the immediate window after the reset (those seqno that would complete in the time it took for the waiter thread to perform its check) but miss any seqno that lacked an interrupt afterwards. References: 39f3be162c46 ("drm/i915: Kick waiters on resetting legacy rings") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Matthew Auld <matthew.auld@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/i915/intel_ringbuffer.c | 2 -- 1 file changed, 2 deletions(-)