Commit 93692502 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin

drm/i915/tracepoints: Tidy i915_gem_request_wait_begin

Provide the same information as the other request event classes.

v2: Pass in flags so we can properly report the blocking status.
    (Chris Wilson)

v3: Log hex with 0x prefix for clarity.

v4: Derive blocking status from flags. (Chris Wilson)
Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent 1cce8922
...@@ -1092,7 +1092,7 @@ long i915_wait_request(struct drm_i915_gem_request *req, ...@@ -1092,7 +1092,7 @@ long i915_wait_request(struct drm_i915_gem_request *req,
if (!timeout) if (!timeout)
return -ETIME; return -ETIME;
trace_i915_gem_request_wait_begin(req); trace_i915_gem_request_wait_begin(req, flags);
if (!i915_sw_fence_done(&req->execute)) { if (!i915_sw_fence_done(&req->execute)) {
timeout = __i915_request_wait_for_execute(req, flags, timeout); timeout = __i915_request_wait_for_execute(req, flags, timeout);
......
...@@ -508,14 +508,16 @@ DEFINE_EVENT(i915_gem_request, i915_gem_request_complete, ...@@ -508,14 +508,16 @@ DEFINE_EVENT(i915_gem_request, i915_gem_request_complete,
); );
TRACE_EVENT(i915_gem_request_wait_begin, TRACE_EVENT(i915_gem_request_wait_begin,
TP_PROTO(struct drm_i915_gem_request *req), TP_PROTO(struct drm_i915_gem_request *req, unsigned int flags),
TP_ARGS(req), TP_ARGS(req, flags),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(u32, dev) __field(u32, dev)
__field(u32, ring) __field(u32, ring)
__field(u32, ctx)
__field(u32, seqno) __field(u32, seqno)
__field(bool, blocking) __field(u32, global)
__field(unsigned int, flags)
), ),
/* NB: the blocking information is racy since mutex_is_locked /* NB: the blocking information is racy since mutex_is_locked
...@@ -527,14 +529,16 @@ TRACE_EVENT(i915_gem_request_wait_begin, ...@@ -527,14 +529,16 @@ TRACE_EVENT(i915_gem_request_wait_begin,
TP_fast_assign( TP_fast_assign(
__entry->dev = req->i915->drm.primary->index; __entry->dev = req->i915->drm.primary->index;
__entry->ring = req->engine->id; __entry->ring = req->engine->id;
__entry->seqno = req->global_seqno; __entry->ctx = req->ctx->hw_id;
__entry->blocking = __entry->seqno = req->fence.seqno;
mutex_is_locked(&req->i915->drm.struct_mutex); __entry->global = req->global_seqno;
__entry->flags = flags;
), ),
TP_printk("dev=%u, ring=%u, seqno=%u, blocking=%s", TP_printk("dev=%u, ring=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
__entry->dev, __entry->ring, __entry->dev, __entry->ring, __entry->ctx, __entry->seqno,
__entry->seqno, __entry->blocking ? "yes (NB)" : "no") __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
__entry->flags)
); );
DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_end, DEFINE_EVENT(i915_gem_request, i915_gem_request_wait_end,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment