On Mon, Jul 19, 2021 at 06:27:06PM -0700, John Harrison wrote:
On 7/16/2021 13:16, Matthew Brost wrote:
Add trace points for request dependencies and GuC submit. Extended existing request trace points to include submit fence value,, guc_id,
Still has misplaced commas.
Also, Tvrtko has a bunch of comments/questions on the previous version that need to be addressed.
Replied. Landed on just deleting the contentious, albiet very useful, trace points. Will revisit in the future.
Matt
John.
and ring tail value.
v2: Fix white space alignment in i915_request_add trace point
Cc: John Harrison john.c.harrison@intel.com Signed-off-by: Matthew Brost matthew.brost@intel.com Reviewed-by: John Harrison John.C.Harrison@Intel.com
.../gpu/drm/i915/gt/uc/intel_guc_submission.c | 3 ++ drivers/gpu/drm/i915/i915_request.c | 3 ++ drivers/gpu/drm/i915/i915_trace.h | 43 +++++++++++++++++-- 3 files changed, 45 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c index a2af7e17dcc2..480fb2184ecf 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c @@ -417,6 +417,7 @@ static int guc_dequeue_one_context(struct intel_guc *guc) guc->stalled_request = last; return false; }
} guc->stalled_request = NULL;trace_i915_request_guc_submit(last);
@@ -637,6 +638,8 @@ static int guc_bypass_tasklet_submit(struct intel_guc *guc, ret = guc_add_request(guc, rq); if (ret == -EBUSY) guc->stalled_request = rq;
- else
return ret; }trace_i915_request_guc_submit(rq);
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c index 2b2b63cba06c..01aa3d1ee2b1 100644 --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c @@ -1319,6 +1319,9 @@ __i915_request_await_execution(struct i915_request *to, return err; }
- trace_i915_request_dep_to(to);
- trace_i915_request_dep_from(from);
- /* Couple the dependency tree for PI on this exposed to->fence */ if (to->engine->sched_engine->schedule) { err = i915_sched_node_add_dependency(&to->sched,
diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h index 6778ad2a14a4..ea41d069bf7d 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -794,30 +794,50 @@ DECLARE_EVENT_CLASS(i915_request, TP_STRUCT__entry( __field(u32, dev) __field(u64, ctx)
__field(u32, guc_id) __field(u16, class) __field(u16, instance) __field(u32, seqno)
TP_fast_assign( __entry->dev = rq->engine->i915->drm.primary->index; __entry->class = rq->engine->uabi_class; __entry->instance = rq->engine->uabi_instance;__field(u32, tail) ),
__entry->guc_id = rq->context->guc_id; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno;
__entry->tail = rq->tail; ),
TP_printk("dev=%u, engine=%u:%u, ctx=%llu, seqno=%u",
TP_printk("dev=%u, engine=%u:%u, guc_id=%u, ctx=%llu, seqno=%u, tail=%u", __entry->dev, __entry->class, __entry->instance,
__entry->ctx, __entry->seqno)
__entry->guc_id, __entry->ctx, __entry->seqno,
); DEFINE_EVENT(i915_request, i915_request_add,__entry->tail)
TP_PROTO(struct i915_request *rq),
TP_ARGS(rq)
TP_PROTO(struct i915_request *rq),
); #if defined(CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS)TP_ARGS(rq)
+DEFINE_EVENT(i915_request, i915_request_dep_to,
TP_PROTO(struct i915_request *rq),
TP_ARGS(rq)
+);
+DEFINE_EVENT(i915_request, i915_request_dep_from,
TP_PROTO(struct i915_request *rq),
TP_ARGS(rq)
+);
+DEFINE_EVENT(i915_request, i915_request_guc_submit,
TP_PROTO(struct i915_request *rq),
TP_ARGS(rq)
+);
- DEFINE_EVENT(i915_request, i915_request_submit, TP_PROTO(struct i915_request *rq), TP_ARGS(rq)
@@ -887,6 +907,21 @@ TRACE_EVENT(i915_request_out, #else #if !defined(TRACE_HEADER_MULTI_READ) +static inline void +trace_i915_request_dep_to(struct i915_request *rq) +{ +}
+static inline void +trace_i915_request_dep_from(struct i915_request *rq) +{ +}
+static inline void +trace_i915_request_guc_submit(struct i915_request *rq) +{ +}
- static inline void trace_i915_request_submit(struct i915_request *rq) {