[Intel-gfx] [PATCH 27/34] drm/i915: Remove the intel_engine_notify tracepoint

Chris Wilson chris at chris-wilson.co.uk
Wed Jan 23 12:54:25 UTC 2019


Quoting Tvrtko Ursulin (2019-01-22 15:50:27)
> 
> On 21/01/2019 22:21, Chris Wilson wrote:
> > The global seqno is defunct and so we have no meaningful indicator of
> > forward progress for an engine. You need to listen to the request
> > signaling tracepoints instead.
> > 
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > ---
> >   drivers/gpu/drm/i915/i915_irq.c   |  2 --
> >   drivers/gpu/drm/i915/i915_trace.h | 25 -------------------------
> >   2 files changed, 27 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> > index 5fd5080c4ccb..71d11dc2c235 100644
> > --- a/drivers/gpu/drm/i915/i915_irq.c
> > +++ b/drivers/gpu/drm/i915/i915_irq.c
> > @@ -1209,8 +1209,6 @@ static void notify_ring(struct intel_engine_cs *engine)
> >               wake_up_process(tsk);
> >   
> >       rcu_read_unlock();
> > -
> > -     trace_intel_engine_notify(engine, wait);
> >   }
> >   
> >   static void vlv_c0_read(struct drm_i915_private *dev_priv,
> > diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
> > index 33d90eca9cdd..cb5bc65d575d 100644
> > --- a/drivers/gpu/drm/i915/i915_trace.h
> > +++ b/drivers/gpu/drm/i915/i915_trace.h
> > @@ -750,31 +750,6 @@ trace_i915_request_out(struct i915_request *rq)
> >   #endif
> >   #endif
> >   
> > -TRACE_EVENT(intel_engine_notify,
> > -         TP_PROTO(struct intel_engine_cs *engine, bool waiters),
> > -         TP_ARGS(engine, waiters),
> > -
> > -         TP_STRUCT__entry(
> > -                          __field(u32, dev)
> > -                          __field(u16, class)
> > -                          __field(u16, instance)
> > -                          __field(u32, seqno)
> > -                          __field(bool, waiters)
> > -                          ),
> > -
> > -         TP_fast_assign(
> > -                        __entry->dev = engine->i915->drm.primary->index;
> > -                        __entry->class = engine->uabi_class;
> > -                        __entry->instance = engine->instance;
> > -                        __entry->seqno = intel_engine_get_seqno(engine);
> > -                        __entry->waiters = waiters;
> > -                        ),
> > -
> > -         TP_printk("dev=%u, engine=%u:%u, seqno=%u, waiters=%u",
> > -                   __entry->dev, __entry->class, __entry->instance,
> > -                   __entry->seqno, __entry->waiters)
> > -);
> > -
> >   DEFINE_EVENT(i915_request, i915_request_retire,
> >           TP_PROTO(struct i915_request *rq),
> >           TP_ARGS(rq)
> > 
> 
> I cannot decide if keeping what we can would make it useful. Certainly 
> not for debugging intel_engine_breadcrumbs_irq.. a sequence of 
> intel_engine_notify(dev, class, instance) -> dma_fence_signaled would be 
> a very unreliable trace of what engine actually executed something. What 
> do you think?

All we get is a tracepoint to say an user-interrupt occurred, but nothing to
tie it to any request. We are debugging interrupt generation at that
point, and I feel a tracepoint ill-suited. We want something geared
towards CI instead, so a bunch of selftests... That would be sensible!
-Chris


More information about the Intel-gfx mailing list