[Intel-gfx] [PATCH v5] drm/i915: Tune down init error message due to failure injection

Chris Wilson chris at chris-wilson.co.uk
Fri Mar 18 07:58:36 UTC 2016


On Fri, Mar 18, 2016 at 08:50:37AM +0200, Imre Deak wrote:
> Atm, in case failure injection forces an error the subsequent "*ERROR*
> failed to init modeset" error message will make automated tests (CI)
> report this event as a breakage even though the event is expected. To
> fix this print the error message with debug log level in this case.
> 
> While at it print the error message for any init failure and change it
> to
> """
> Device initialization failed (errno)
> Please file a bug at https://bugs.freedesktop.org/enter_bug.cgi?product=DRI
> against DRM/Intel providing the dmesg log by booting with drm.debug=0xf
> """
> and export a helper printing error messages using this same format.
> A follow-up patch will convert all uses of DRM_ERROR reporting a user
> facing problem to use this new helper instead.
> 
> v2:
> - Include the problematic error message in the commit log, add a
>   request to file an fdo bug to the message (Chris)
> v3:
> - Include the new error message too in the commit log, make the
>   fdo link more precise and print part of the message with info log
>   level (Chris)
> v4: (Chris)
> - Use dev_printk instead of DRM_ERROR/INFO and use NOTICE instead of
>   INFO loglevel
> - Export a helper for printing user facing error messages
> v5:
> - Keep the DRM_ERROR message prefix used by piglit-igt/CI to filter
>   relevant dmesg lines
> - Use dev_notice(), instead of dev_printk(KERN_NOTICE,...)
> 
> CC: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  drivers/gpu/drm/i915/i915_dma.c | 48 ++++++++++++++++++++++++++++++++++++-----
>  drivers/gpu/drm/i915/i915_drv.h |  7 ++++++
>  2 files changed, 50 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 68592b0..096dc35 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -66,6 +66,44 @@ bool __i915_inject_load_failure(const char *func, int line)
>  	return false;
>  }
>  
> +#define FDO_BUG_URL "https://bugs.freedesktop.org/enter_bug.cgi?product=DRI"
> +#define FDO_BUG_MSG "Please file a bug at " FDO_BUG_URL " against DRM/Intel " \
> +		    "providing the dmesg log by booting with drm.debug=0xf"
> +
> +void
> +__i915_printk(struct drm_i915_private *dev_priv, const char *level,
> +	      const char *fmt, ...)
> +{

static int shown_bug_once;

> +	struct device *dev = dev_priv->dev->dev;
> +	bool is_error = level[1] <= KERN_ERR[1];
> +	struct va_format vaf;
> +	va_list args;
> +
> +	va_start(args, fmt);
> +
> +	vaf.fmt = fmt;
> +	vaf.va = &args;
> +
> +	dev_printk(level, dev, "[" DRM_NAME ":%ps] %pV",
> +		   __builtin_return_address(0), &vaf);

Also on my wishlist is to
#undef DRM_NAME
#define DRM_NAME "drm/i915"
in i915_drv.h

Don't tell me that would break CI!

> +	if (is_error)

if (is_error && !shown_bug_once) {
> +		dev_notice(dev, "%s", FDO_BUG_MSG);
shown_bug_once = 1;
}

With just showing the bug once,
Reviwed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list