[Intel-gfx] [PATCH] drm/i915: Only warn the first time we attempt to mmio whilst suspended

Paulo Zanoni przanoni at gmail.com
Mon Nov 24 15:11:45 CET 2014


2014-11-24 6:03 GMT-02:00 Chris Wilson <chris at chris-wilson.co.uk>:
> In all likelihood we will do a few hundred errnoneous register
> operations if we do a single invalid register access whilst the device
> is suspended. As each instance causes a WARN, this floods the system
> logs and can make the system unresponsive.
>
> The warning was first introduced in
> commit b2ec142cb0101f298f8e091c7d75b1ec5b809b65
> Author: Paulo Zanoni <paulo.r.zanoni at intel.com>
> Date:   Fri Feb 21 13:52:25 2014 -0300
>
>     drm/i915: call assert_device_not_suspended at gen6_force_wake_work
>
> and despite the claims the WARN is still encountered in the wild today.

Can you please give us some more information on the WARNs you are
encountering? Any bug numbers? Which platforms? Do we have test cases
for these in IGT? If you can describe the steps to reproduce, we can
try to write some test cases.

I have already debugged bugs related to this WARN, and as far as I
remember, in most cases we only got a few WARN instances, not
"hundreds" of WARNs.

The patch itself is fine, but having a way to trigger all the WARNs -
not just the first one - with i915.mmio_debug would be cool too.

>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>
> Cc: Imre Deak <imre.deak at intel.com>
> Cc: stable at vger.kernel.org
> ---
>  drivers/gpu/drm/i915/intel_uncore.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 1a3e485a4f97..f0230b0e8e11 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -43,8 +43,8 @@
>  static void
>  assert_device_not_suspended(struct drm_i915_private *dev_priv)
>  {
> -       WARN(HAS_RUNTIME_PM(dev_priv->dev) && dev_priv->pm.suspended,
> -            "Device suspended\n");
> +       WARN_ONCE(HAS_RUNTIME_PM(dev_priv->dev) && dev_priv->pm.suspended,
> +                 "Device suspended\n");
>  }
>
>  static void __gen6_gt_wait_for_thread_c0(struct drm_i915_private *dev_priv)
> --
> 2.1.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Paulo Zanoni



More information about the Intel-gfx mailing list