[Intel-gfx] [PATCH] drm/i915: Trace context switches
Chris Wilson
chris at chris-wilson.co.uk
Thu Aug 29 14:34:30 CEST 2013
Add a tracepoint for monitoring context switching.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
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
More information about the Intel-gfx
mailing list