Add a tracepoint for monitoring context switching. Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/i915_gem_context.c | 2 ++ drivers/gpu/drm/i915/i915_trace.h | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index fae2f4d..6d7a662 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -361,6 +361,8 @@ mi_set_context(struct intel_ring_buffer *ring, return ret; } + trace_i915_gem_ring_switch_context(ring, new_context, hw_flags); + len = 4; switch (INTEL_INFO(ring->dev)->gen) { case 7: diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h index 163774a..c474a30 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -254,6 +254,28 @@ TRACE_EVENT(i915_gem_ring_sync_to, TP_printk("dev=%u, sync-from=%u, sync-to=%u", __entry->dev, __entry->sync_from, __entry->sync_to) ); +TRACE_EVENT(i915_gem_ring_switch_context, + TP_PROTO(struct intel_ring_buffer *ring, struct i915_hw_context *ctx, u32 flags), + TP_ARGS(ring, ctx, flags), + + TP_STRUCT__entry( + __field(u32, dev) + __field(u32, ring) + __field(u32, ctx) + __field(u32, flags) + ), + + TP_fast_assign( + __entry->dev = ring->dev->primary->index; + __entry->ring = ring->id; + __entry->ctx = ctx->id; + __entry->flags = flags; + ), + + TP_printk("dev=%u, ring=%u, ctx=%u, flags=0x%08x", + __entry->dev, __entry->ring, __entry->ctx, __entry->flags) +); + TRACE_EVENT(i915_gem_ring_dispatch, TP_PROTO(struct intel_ring_buffer *ring, u32 flags), TP_ARGS(ring, flags), -- 1.8.4.rc3 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx