[3/3] drm/i915: Don't taint when using fault injection
diff mbox series

Message ID 20200706140125.172844-3-michal@hardline.pl
State New
Headers show
Series
  • [v3,1/3] drm/i915: Reboot CI if we get wedged during driver init
Related show

Commit Message

Michał Winiarski July 6, 2020, 2:01 p.m. UTC
From: Michał Winiarski <michal.winiarski@intel.com>

It is not really unexpected to hit wedge on init this way.
We're already downgrading error printk when running with fault injection,
let's use the same approach for CI tainting.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
---
 drivers/gpu/drm/i915/i915_utils.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Chris Wilson July 6, 2020, 2:10 p.m. UTC | #1
Quoting Michał Winiarski (2020-07-06 15:01:25)
> From: Michał Winiarski <michal.winiarski@intel.com>
> 
> It is not really unexpected to hit wedge on init this way.
> We're already downgrading error printk when running with fault injection,
> let's use the same approach for CI tainting.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Petri Latvala <petri.latvala@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_utils.h | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h
> index 82fada1e7552..d84c23592942 100644
> --- a/drivers/gpu/drm/i915/i915_utils.h
> +++ b/drivers/gpu/drm/i915/i915_utils.h
> @@ -438,7 +438,9 @@ static inline const char *enableddisabled(bool v)
>  
>  static inline void __add_taint_for_CI(unsigned int taint)
>  {
> -       add_taint(taint, LOCKDEP_STILL_OK);
> +       /* Failures that occur during fault injection testing are expected */
> +       if (!i915_error_injected())
> +               add_taint(taint, LOCKDEP_STILL_OK);
>  }

And I think this is better in add_taint_for_CI(). If we hit the
GEM_BUG_ON() we should always add the taint, as that trace dump is a
one-shot affair.
-Chris
Chris Wilson July 6, 2020, 2:11 p.m. UTC | #2
Quoting Chris Wilson (2020-07-06 15:10:02)
> Quoting Michał Winiarski (2020-07-06 15:01:25)
> > From: Michał Winiarski <michal.winiarski@intel.com>
> > 
> > It is not really unexpected to hit wedge on init this way.
> > We're already downgrading error printk when running with fault injection,
> > let's use the same approach for CI tainting.
> > 
> > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> > Cc: Petri Latvala <petri.latvala@intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_utils.h | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h
> > index 82fada1e7552..d84c23592942 100644
> > --- a/drivers/gpu/drm/i915/i915_utils.h
> > +++ b/drivers/gpu/drm/i915/i915_utils.h
> > @@ -438,7 +438,9 @@ static inline const char *enableddisabled(bool v)
> >  
> >  static inline void __add_taint_for_CI(unsigned int taint)
> >  {
> > -       add_taint(taint, LOCKDEP_STILL_OK);
> > +       /* Failures that occur during fault injection testing are expected */
> > +       if (!i915_error_injected())
> > +               add_taint(taint, LOCKDEP_STILL_OK);
> >  }
> 
> And I think this is better in add_taint_for_CI(). If we hit the
> GEM_BUG_ON() we should always add the taint, as that trace dump is a
> one-shot affair.

So if you agree, make add_taint_for_CI out-of-line and it there, and you
can have a 

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

straight away :)
-Chris

Patch
diff mbox series

diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h
index 82fada1e7552..d84c23592942 100644
--- a/drivers/gpu/drm/i915/i915_utils.h
+++ b/drivers/gpu/drm/i915/i915_utils.h
@@ -438,7 +438,9 @@  static inline const char *enableddisabled(bool v)
 
 static inline void __add_taint_for_CI(unsigned int taint)
 {
-	add_taint(taint, LOCKDEP_STILL_OK);
+	/* Failures that occur during fault injection testing are expected */
+	if (!i915_error_injected())
+		add_taint(taint, LOCKDEP_STILL_OK);
 }
 
 static inline void