[Intel-gfx] [PATCH 03/34] drm/i915: Show all active engines on hangcheck
Chris Wilson
chris at chris-wilson.co.uk
Tue Jan 22 12:42:14 UTC 2019
Quoting Mika Kuoppala (2019-01-22 12:33:00)
> Chris Wilson <chris at chris-wilson.co.uk> writes:
>
> > This turns out to be quite useful if one happens to be debugging
> > semaphore deadlocks.
> >
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > ---
> > drivers/gpu/drm/i915/intel_hangcheck.c | 15 +++++++++++----
> > 1 file changed, 11 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_hangcheck.c b/drivers/gpu/drm/i915/intel_hangcheck.c
> > index 7dc11fcb13de..741441daae32 100644
> > --- a/drivers/gpu/drm/i915/intel_hangcheck.c
> > +++ b/drivers/gpu/drm/i915/intel_hangcheck.c
> > @@ -195,10 +195,6 @@ static void hangcheck_accumulate_sample(struct intel_engine_cs *engine,
> > break;
> >
> > case ENGINE_DEAD:
> > - if (GEM_SHOW_DEBUG()) {
> > - struct drm_printer p = drm_debug_printer("hangcheck");
> > - intel_engine_dump(engine, &p, "%s\n", engine->name);
> > - }
> > break;
> >
> > default:
> > @@ -285,6 +281,17 @@ static void i915_hangcheck_elapsed(struct work_struct *work)
> > wedged |= intel_engine_flag(engine);
> > }
> >
> > + if (GEM_SHOW_DEBUG() && (hung | stuck)) {
> > + struct drm_printer p = drm_debug_printer("hangcheck");
> > +
> > + for_each_engine(engine, dev_priv, id) {
> > + if (intel_engine_is_idle(engine))
> > + continue;
>
> Looks rather harmless tho there is that local_bh_disable.
> I was pondering if it was worthwhile to determine idle here
> with more lightweight approach, but as we already use
> the exact same method on determining hangcheck action, lets
> stick to this as it is should be then in parity with the
> engine action we got earlier.
Plus it's only for glancing at the dmesg; the error state is meant to be
the be-all-end-all of debugging information. I just find it convenient
when watching netconsole and most kernel bugs can be deduced from the
register state itself.
-Chris
More information about the Intel-gfx
mailing list