Quoting Mika Kuoppala (2017-11-09 11:03:39) > Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > > > Now that we have a common engine state pretty printer, we can use that > > instead of the adhoc information printed when we miss a breadcrumb. > > > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxx> > > Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > > --- > > drivers/gpu/drm/i915/intel_breadcrumbs.c | 11 +++++------ > > drivers/gpu/drm/i915/intel_engine_cs.c | 6 ++++++ > > 2 files changed, 11 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c > > index 4de054f8c1ba..1e4d2978fb86 100644 > > --- a/drivers/gpu/drm/i915/intel_breadcrumbs.c > > +++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c > > @@ -64,12 +64,11 @@ static unsigned long wait_timeout(void) > > > > static noinline void missed_breadcrumb(struct intel_engine_cs *engine) > > { > > - DRM_DEBUG_DRIVER("%s missed breadcrumb at %pS, irq posted? %s, current seqno=%x, last=%x\n", > > - engine->name, __builtin_return_address(0), > > - yesno(test_bit(ENGINE_IRQ_BREADCRUMB, > > - &engine->irq_posted)), > > - intel_engine_get_seqno(engine), > > - intel_engine_last_submit(engine)); > > + struct drm_printer p = drm_debug_printer(__func__); > > + > > + DRM_DEBUG_DRIVER("%s missed breadcrumb at %pS\n", > > + engine->name, __builtin_return_address(0)); > > + intel_engine_dump(engine, &p); > > We are holding rb_lock while we enter and the dump will retake it. Well that's annoying. It also leads to the next point, that intel_engine_dump() isn't taking the engine->timeline->lock enough. Good catch, thanks. > We also should add proper asserts to intel_engine_dump that we notice > immediately if we try to dump on wrong context. You can't just assert(!spin_locked()) as that gives false positives when it is in use elsewhere. The answer would be to annotate all spinlocks with lockdep. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx