Re: [PATCH] drm/i915: Double check we didn't miss an unclaimed register access

Chris Wilson
2018-09-04T12:38:32Z

Quoting Mika Kuoppala (2018-09-04 13:34:12)
> Chris Wilson <chris@chris-wilson.co.uk> writes:
>
> > Currently, if the user has enabled mmio-debug around each register
> > access, we presume that we have then checked them all. However, it is
> > still possible through omission (raw register access) or external
> > interaction that the unclaimed access was not highlighted.
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_uncore.c | 13 +++++++------
> > 1 file changed, 7 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> > index 20f2f5ad9c3f..05f0cda18501 100644
> > --- a/drivers/gpu/drm/i915/intel_uncore.c
> > +++ b/drivers/gpu/drm/i915/intel_uncore.c
> > @@ -2283,15 +2283,16 @@ bool intel_uncore_unclaimed_mmio(struct drm_i915_private *dev_priv)
> > bool
> > intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private *dev_priv)
> > {
> > - if (unlikely(i915_modparams.mmio_debug ||
> > - dev_priv->uncore.unclaimed_mmio_check <= 0))
> > + if (unlikely(dev_priv->uncore.unclaimed_mmio_check <= 0))
> > return false;
> >
>
> We could catch the readers attention by marking this as READ_ONCE.
>
>
> And then take spinlock here before checking for unclaimed.

Could do, feels like overkill, but not contentious.
>
> We poke here from hangcheck at unknown intervals and I am
> concerned both the trampling on the check values and also
> the register access of the unclaimed debug regs.
>
> Which also raises the question that should we just move
> the arming check to park/unpark?

We still want around modeset, suspend/resume. I'd rather have the
periodic poking off the main thread (i.e. hangcheck) tbh.
-Chris