[Intel-gfx] [PATCH] drm/i915: ratelimit errors in display engine irq

Jani Nikula jani.nikula at linux.intel.com
Thu Dec 15 08:54:51 UTC 2022


On Wed, 14 Dec 2022, Lucas De Marchi <lucas.demarchi at intel.com> wrote:
> While debugging page table faults it's useful not to kill the machine
> with thousands of error mesages. Ratelimit all errors in
> gen8_de_irq_handler().
>
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>

Reviewed-by: Jani Nikula <jani.nikula at intel.com>

> ---
>  drivers/gpu/drm/i915/i915_irq.c | 28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index edfe363af838..7a43d1bb6f97 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2448,8 +2448,8 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
>  			ret = IRQ_HANDLED;
>  			gen8_de_misc_irq_handler(dev_priv, iir);
>  		} else {
> -			drm_err(&dev_priv->drm,
> -				"The master control interrupt lied (DE MISC)!\n");
> +			drm_err_ratelimited(&dev_priv->drm,
> +					    "The master control interrupt lied (DE MISC)!\n");
>  		}
>  	}
>  
> @@ -2460,8 +2460,8 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
>  			ret = IRQ_HANDLED;
>  			gen11_hpd_irq_handler(dev_priv, iir);
>  		} else {
> -			drm_err(&dev_priv->drm,
> -				"The master control interrupt lied, (DE HPD)!\n");
> +			drm_err_ratelimited(&dev_priv->drm,
> +					    "The master control interrupt lied, (DE HPD)!\n");
>  		}
>  	}
>  
> @@ -2510,12 +2510,12 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
>  			}
>  
>  			if (!found)
> -				drm_err(&dev_priv->drm,
> -					"Unexpected DE Port interrupt\n");
> +				drm_err_ratelimited(&dev_priv->drm,
> +						    "Unexpected DE Port interrupt\n");
>  		}
>  		else
> -			drm_err(&dev_priv->drm,
> -				"The master control interrupt lied (DE PORT)!\n");
> +			drm_err_ratelimited(&dev_priv->drm,
> +					    "The master control interrupt lied (DE PORT)!\n");
>  	}
>  
>  	for_each_pipe(dev_priv, pipe) {
> @@ -2526,8 +2526,8 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
>  
>  		iir = intel_uncore_read(&dev_priv->uncore, GEN8_DE_PIPE_IIR(pipe));
>  		if (!iir) {
> -			drm_err(&dev_priv->drm,
> -				"The master control interrupt lied (DE PIPE)!\n");
> +			drm_err_ratelimited(&dev_priv->drm,
> +					    "The master control interrupt lied (DE PIPE)!\n");
>  			continue;
>  		}
>  
> @@ -2548,10 +2548,10 @@ gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
>  
>  		fault_errors = iir & gen8_de_pipe_fault_mask(dev_priv);
>  		if (fault_errors)
> -			drm_err(&dev_priv->drm,
> -				"Fault errors on pipe %c: 0x%08x\n",
> -				pipe_name(pipe),
> -				fault_errors);
> +			drm_err_ratelimited(&dev_priv->drm,
> +					    "Fault errors on pipe %c: 0x%08x\n",
> +					    pipe_name(pipe),
> +					    fault_errors);
>  	}
>  
>  	if (HAS_PCH_SPLIT(dev_priv) && !HAS_PCH_NOP(dev_priv) &&

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list