[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