Message ID | 20180409111413.6352-14-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Chris Wilson <chris@chris-wilson.co.uk> writes: > The majority of the engine state dumping is too voluminous to be useful > outside of a controlled setup, though a few do accompany severe errors. > Keep the debug dumps next to the errors, but hide the others behind a CI > compile flag. This becomes more useful when adding more dumps to latency > sensitive paths. > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > --- > drivers/gpu/drm/i915/i915_gem.c | 2 +- > drivers/gpu/drm/i915/i915_gem.h | 6 ++++++ > drivers/gpu/drm/i915/intel_breadcrumbs.c | 2 +- > drivers/gpu/drm/i915/intel_hangcheck.c | 2 +- > 4 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 42a387ff0eaa..cec52bbd1b41 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -3267,7 +3267,7 @@ void i915_gem_set_wedged(struct drm_i915_private *i915) > > GEM_TRACE("start\n"); > > - if (drm_debug & DRM_UT_DRIVER) { > + if (GEM_SHOW_DEBUG()) { > struct drm_printer p = drm_debug_printer(__func__); > > for_each_engine(engine, i915, id) > diff --git a/drivers/gpu/drm/i915/i915_gem.h b/drivers/gpu/drm/i915/i915_gem.h > index deaf78d2ae8b..525920404ede 100644 > --- a/drivers/gpu/drm/i915/i915_gem.h > +++ b/drivers/gpu/drm/i915/i915_gem.h > @@ -30,6 +30,9 @@ > struct drm_i915_private; > > #ifdef CONFIG_DRM_I915_DEBUG_GEM > + > +#define GEM_SHOW_DEBUG() (drm_debug & DRM_UT_DRIVER) > + > #define GEM_BUG_ON(condition) do { if (unlikely((condition))) { \ > pr_err("%s:%d GEM_BUG_ON(%s)\n", \ > __func__, __LINE__, __stringify(condition)); \ > @@ -45,6 +48,9 @@ struct drm_i915_private; > #define GEM_DEBUG_BUG_ON(expr) GEM_BUG_ON(expr) > > #else > + > +#define GEM_SHOW_DEBUG() (0) > + > #define GEM_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr) > #define GEM_WARN_ON(expr) (BUILD_BUG_ON_INVALID(expr), 0) > > diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c > index ca0b04d9747c..ad761b8d843d 100644 > --- a/drivers/gpu/drm/i915/intel_breadcrumbs.c > +++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c > @@ -82,7 +82,7 @@ static unsigned long wait_timeout(void) > > static noinline void missed_breadcrumb(struct intel_engine_cs *engine) > { > - if (drm_debug & DRM_UT_DRIVER) { > + if (GEM_SHOW_DEBUG()) { > struct drm_printer p = drm_debug_printer(__func__); > > intel_engine_dump(engine, &p, > diff --git a/drivers/gpu/drm/i915/intel_hangcheck.c b/drivers/gpu/drm/i915/intel_hangcheck.c > index fd0ffb8328d0..309e38b00e95 100644 > --- a/drivers/gpu/drm/i915/intel_hangcheck.c > +++ b/drivers/gpu/drm/i915/intel_hangcheck.c > @@ -356,7 +356,7 @@ static void hangcheck_accumulate_sample(struct intel_engine_cs *engine, > break; > > case ENGINE_DEAD: > - if (drm_debug & DRM_UT_DRIVER) { > + if (GEM_SHOW_DEBUG()) { > struct drm_printer p = drm_debug_printer("hangcheck"); > intel_engine_dump(engine, &p, "%s\n", engine->name); > } > -- > 2.17.0
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 42a387ff0eaa..cec52bbd1b41 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3267,7 +3267,7 @@ void i915_gem_set_wedged(struct drm_i915_private *i915) GEM_TRACE("start\n"); - if (drm_debug & DRM_UT_DRIVER) { + if (GEM_SHOW_DEBUG()) { struct drm_printer p = drm_debug_printer(__func__); for_each_engine(engine, i915, id) diff --git a/drivers/gpu/drm/i915/i915_gem.h b/drivers/gpu/drm/i915/i915_gem.h index deaf78d2ae8b..525920404ede 100644 --- a/drivers/gpu/drm/i915/i915_gem.h +++ b/drivers/gpu/drm/i915/i915_gem.h @@ -30,6 +30,9 @@ struct drm_i915_private; #ifdef CONFIG_DRM_I915_DEBUG_GEM + +#define GEM_SHOW_DEBUG() (drm_debug & DRM_UT_DRIVER) + #define GEM_BUG_ON(condition) do { if (unlikely((condition))) { \ pr_err("%s:%d GEM_BUG_ON(%s)\n", \ __func__, __LINE__, __stringify(condition)); \ @@ -45,6 +48,9 @@ struct drm_i915_private; #define GEM_DEBUG_BUG_ON(expr) GEM_BUG_ON(expr) #else + +#define GEM_SHOW_DEBUG() (0) + #define GEM_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr) #define GEM_WARN_ON(expr) (BUILD_BUG_ON_INVALID(expr), 0) diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c index ca0b04d9747c..ad761b8d843d 100644 --- a/drivers/gpu/drm/i915/intel_breadcrumbs.c +++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c @@ -82,7 +82,7 @@ static unsigned long wait_timeout(void) static noinline void missed_breadcrumb(struct intel_engine_cs *engine) { - if (drm_debug & DRM_UT_DRIVER) { + if (GEM_SHOW_DEBUG()) { struct drm_printer p = drm_debug_printer(__func__); intel_engine_dump(engine, &p, diff --git a/drivers/gpu/drm/i915/intel_hangcheck.c b/drivers/gpu/drm/i915/intel_hangcheck.c index fd0ffb8328d0..309e38b00e95 100644 --- a/drivers/gpu/drm/i915/intel_hangcheck.c +++ b/drivers/gpu/drm/i915/intel_hangcheck.c @@ -356,7 +356,7 @@ static void hangcheck_accumulate_sample(struct intel_engine_cs *engine, break; case ENGINE_DEAD: - if (drm_debug & DRM_UT_DRIVER) { + if (GEM_SHOW_DEBUG()) { struct drm_printer p = drm_debug_printer("hangcheck"); intel_engine_dump(engine, &p, "%s\n", engine->name); }
The majority of the engine state dumping is too voluminous to be useful outside of a controlled setup, though a few do accompany severe errors. Keep the debug dumps next to the errors, but hide the others behind a CI compile flag. This becomes more useful when adding more dumps to latency sensitive paths. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> --- drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_gem.h | 6 ++++++ drivers/gpu/drm/i915/intel_breadcrumbs.c | 2 +- drivers/gpu/drm/i915/intel_hangcheck.c | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-)