Skip to contentSkip to conversation

drm/i915/trace: Describe engines as class:instance pairs

PATCH In review Tvrtko Ursulin 5 participants 19 messages May 25, 2018 – Jun 5, 2018

Subsystems (2)
lore
Share & tools
lore

Tvrtko Ursulin

author maintainer
#0 lore raw

PATCH 1/3 drm/i915/trace: Describe engines as class:instance pairs

From: Tvrtko Ursulin <[email protected]>

Instead of using the engine->id, use uabi_class:instance pairs in trace- points including engine info.

This will be more readable, more future proof and more stable for userspace consumption.

v2:
* Use u16 for class and instance. (Chris Wilson)

---
 drivers/gpu/drm/i915/i915_trace.h | 107 ++++++++++++++++++------------
 1 file changed, 65 insertions(+), 42 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +65 -42
index 5d4f78765083..7acea4052798 100644
@@ -591,21 +591,26 @@ TRACE_EVENT(i915_gem_ring_sync_to,
 
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
-			     __field(u32, sync_from)
-			     __field(u32, sync_to)
+			     __field(u32, from_class)
+			     __field(u32, from_instance)
+			     __field(u32, to_class)
+			     __field(u32, to_instance)
 			     __field(u32, seqno)
 			     ),
 
 	    TP_fast_assign(
 			   __entry->dev = from->i915->drm.primary->index;
-			   __entry->sync_from = from->engine->id;
-			   __entry->sync_to = to->engine->id;
+			   __entry->from_class = from->engine->uabi_class;
+			   __entry->from_instance = from->engine->instance;
+			   __entry->to_class = to->engine->uabi_class;
+			   __entry->to_instance = to->engine->instance;
 			   __entry->seqno = from->global_seqno;
 			   ),
 
-	    TP_printk("dev=%u, sync-from=%u, sync-to=%u, seqno=%u",
+	    TP_printk("dev=%u, sync-from=%u:%u, sync-to=%u:%u, seqno=%u",
 		      __entry->dev,
-		      __entry->sync_from, __entry->sync_to,
+		      __entry->from_class, __entry->from_instance,
+		      __entry->to_class, __entry->to_instance,
 		      __entry->seqno)
 );
 
@@ -616,7 +621,8 @@ TRACE_EVENT(i915_request_queue,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
 			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, flags)
@@ -625,15 +631,17 @@ TRACE_EVENT(i915_request_queue,
 	    TP_fast_assign(
 			   __entry->dev = rq->i915->drm.primary->index;
 			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
 			   __entry->ctx = rq->fence.context;
 			   __entry->seqno = rq->fence.seqno;
 			   __entry->flags = flags;
 			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->flags)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, flags=0x%x",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->flags)
 );
 
 DECLARE_EVENT_CLASS(i915_request,
@@ -643,7 +651,8 @@ DECLARE_EVENT_CLASS(i915_request,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
 			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global)
@@ -652,15 +661,17 @@ DECLARE_EVENT_CLASS(i915_request,
 	    TP_fast_assign(
 			   __entry->dev = rq->i915->drm.primary->index;
 			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
 			   __entry->ctx = rq->fence.context;
 			   __entry->seqno = rq->fence.seqno;
 			   __entry->global = rq->global_seqno;
 			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->global)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->global)
 );
 
 DEFINE_EVENT(i915_request, i915_request_add,
@@ -686,7 +697,8 @@ TRACE_EVENT(i915_request_in,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
 			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global_seqno)
@@ -697,7 +709,8 @@ TRACE_EVENT(i915_request_in,
 	    TP_fast_assign(
 			   __entry->dev = rq->i915->drm.primary->index;
 			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
 			   __entry->ctx = rq->fence.context;
 			   __entry->seqno = rq->fence.seqno;
 			   __entry->global_seqno = rq->global_seqno;
@@ -705,10 +718,10 @@ TRACE_EVENT(i915_request_in,
 			   __entry->port = port;
 			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->prio, __entry->global_seqno,
-		      __entry->port)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->prio, __entry->global_seqno, __entry->port)
 );
 
 TRACE_EVENT(i915_request_out,
@@ -718,7 +731,8 @@ TRACE_EVENT(i915_request_out,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
 			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global_seqno)
@@ -728,16 +742,17 @@ TRACE_EVENT(i915_request_out,
 	    TP_fast_assign(
 			   __entry->dev = rq->i915->drm.primary->index;
 			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
 			   __entry->ctx = rq->fence.context;
 			   __entry->seqno = rq->fence.seqno;
 			   __entry->global_seqno = rq->global_seqno;
 			   __entry->completed = i915_request_completed(rq);
 			   ),
 
-		    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
-			      __entry->dev, __entry->hw_id, __entry->ring,
-			      __entry->ctx, __entry->seqno,
+		    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+			      __entry->dev, __entry->hw_id, __entry->class,
+			      __entry->instance, __entry->ctx, __entry->seqno,
 			      __entry->global_seqno, __entry->completed)
 );
 
@@ -771,21 +786,23 @@ TRACE_EVENT(intel_engine_notify,
 
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
 			     __field(u32, seqno)
 			     __field(bool, waiters)
 			     ),
 
 	    TP_fast_assign(
 			   __entry->dev = engine->i915->drm.primary->index;
-			   __entry->ring = engine->id;
+			   __entry->class = engine->uabi_class;
+			   __entry->instance = engine->instance;
 			   __entry->seqno = intel_engine_get_seqno(engine);
 			   __entry->waiters = waiters;
 			   ),
 
-	    TP_printk("dev=%u, ring=%u, seqno=%u, waiters=%u",
-		      __entry->dev, __entry->ring, __entry->seqno,
-		      __entry->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,
@@ -800,7 +817,8 @@ TRACE_EVENT(i915_request_wait_begin,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
 			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global)
@@ -816,17 +834,19 @@ TRACE_EVENT(i915_request_wait_begin,
 	    TP_fast_assign(
 			   __entry->dev = rq->i915->drm.primary->index;
 			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
 			   __entry->ctx = rq->fence.context;
 			   __entry->seqno = rq->fence.seqno;
 			   __entry->global = rq->global_seqno;
 			   __entry->flags = flags;
 			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->global,
-		      !!(__entry->flags & I915_WAIT_LOCKED), __entry->flags)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
+		      __entry->flags)
 );
 
 DEFINE_EVENT(i915_request, i915_request_wait_end,
@@ -966,21 +986,24 @@ TRACE_EVENT(switch_mm,
 	TP_ARGS(engine, to),
 
 	TP_STRUCT__entry(
-			__field(u32, ring)
+			__field(u16, class)
+			__field(u16, instance)
 			__field(struct i915_gem_context *, to)
 			__field(struct i915_address_space *, vm)
 			__field(u32, dev)
 	),
 
 	TP_fast_assign(
-			__entry->ring = engine->id;
+			__entry->class = engine->uabi_class;
+			__entry->instance = engine->instance;
 			__entry->to = to;
 			__entry->vm = to->ppgtt? &to->ppgtt->base : NULL;
 			__entry->dev = engine->i915->drm.primary->index;
 	),
 
-	TP_printk("dev=%u, ring=%u, ctx=%p, ctx_vm=%p",
-		  __entry->dev, __entry->ring, __entry->to, __entry->vm)
+	TP_printk("dev=%u, engine=%u:%u, ctx=%p, ctx_vm=%p",
+		  __entry->dev, __entry->class, __entry->instance, __entry->to,
+		  __entry->vm)
 );
 
 #endif /* _I915_TRACE_H_ */
Signature · 6 lines
2.17.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
author maintainer
#1 lore raw

PATCH 2/3 drm/i915/trace: Remove engine out of the context sandwich

From: Tvrtko Ursulin <[email protected]>

In the string tracepoint representation we ended up with the engine sandwiched between context hardware id and context fence id.

Move the two pieces of context data together for redability.

Binary records are left as is, that is both fields remaing under the existing name and ordering.

v2:
* Do not consolidate the printk format, just reorder. (Lionel)

Cc Lionel Landwerlin <[email protected]>
---
 drivers/gpu/drm/i915/i915_trace.h | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +15 -15
index 7acea4052798..bac582ed3a0b 100644
@@ -638,9 +638,9 @@ TRACE_EVENT(i915_request_queue,
 			   __entry->flags = flags;
 			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->class,
-		      __entry->instance, __entry->ctx, __entry->seqno,
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, flags=0x%x",
+		      __entry->dev, __entry->class, __entry->instance,
+		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->flags)
 );
 
@@ -668,9 +668,9 @@ DECLARE_EVENT_CLASS(i915_request,
 			   __entry->global = rq->global_seqno;
 			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u",
-		      __entry->dev, __entry->hw_id, __entry->class,
-		      __entry->instance, __entry->ctx, __entry->seqno,
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u",
+		      __entry->dev, __entry->class, __entry->instance,
+		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->global)
 );
 
@@ -718,9 +718,9 @@ TRACE_EVENT(i915_request_in,
 			   __entry->port = port;
 			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
-		      __entry->dev, __entry->hw_id, __entry->class,
-		      __entry->instance, __entry->ctx, __entry->seqno,
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
+		      __entry->dev, __entry->class, __entry->instance,
+		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->prio, __entry->global_seqno, __entry->port)
 );
 
@@ -750,9 +750,9 @@ TRACE_EVENT(i915_request_out,
 			   __entry->completed = i915_request_completed(rq);
 			   ),
 
-		    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
-			      __entry->dev, __entry->hw_id, __entry->class,
-			      __entry->instance, __entry->ctx, __entry->seqno,
+		    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+			      __entry->dev, __entry->class, __entry->instance,
+			      __entry->hw_id, __entry->ctx, __entry->seqno,
 			      __entry->global_seqno, __entry->completed)
 );
 
@@ -842,9 +842,9 @@ TRACE_EVENT(i915_request_wait_begin,
 			   __entry->flags = flags;
 			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->class,
-		      __entry->instance, __entry->ctx, __entry->seqno,
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+		      __entry->dev, __entry->class, __entry->instance,
+		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
 		      __entry->flags)
 );
Signature · 6 lines
2.17.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Reviewed-by on v1 2/3
#2 lore raw

Re: [PATCH 2/3] drm/i915/trace: Remove engine out of the context sandwich

Quoted 7 lines · Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

In the string tracepoint representation we ended up with the engine sandwiched between context hardware id and context fence id.

Move the two pieces of context data together for redability.

Quoted 8 lines

Binary records are left as is, that is both fields remaing under the existing name and ordering.

v2:
* Do not consolidate the printk format, just reorder. (Lionel)

Cc Lionel Landwerlin <[email protected]>

Maybe there was misunderstanding on my previous comment.
What I wanted to let you know is that the parser in igt doesn't know (yet) how to deal with "engine=%u:%u". The ordering of the field doesn't matter though.

Updating the parser is probably a one liner. There is some interesting logic behind though that expect the engine ids to be contiguous numbers.

Quoted 63 lines
---
  drivers/gpu/drm/i915/i915_trace.h | 30 +++++++++++++++---------------
  1 file changed, 15 insertions(+), 15 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +12 -12
index 7acea4052798..bac582ed3a0b 100644
@@ -638,9 +638,9 @@ TRACE_EVENT(i915_request_queue,
  			   __entry->flags = flags;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->class,
-		      __entry->instance, __entry->ctx, __entry->seqno,
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, flags=0x%x",
+		      __entry->dev, __entry->class, __entry->instance,
+		      __entry->hw_id, __entry->ctx, __entry->seqno,
  		      __entry->flags)
  );
 
@@ -668,9 +668,9 @@ DECLARE_EVENT_CLASS(i915_request,
  			   __entry->global = rq->global_seqno;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u",
-		      __entry->dev, __entry->hw_id, __entry->class,
-		      __entry->instance, __entry->ctx, __entry->seqno,
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u",
+		      __entry->dev, __entry->class, __entry->instance,
+		      __entry->hw_id, __entry->ctx, __entry->seqno,
  		      __entry->global)
  );
 
@@ -718,9 +718,9 @@ TRACE_EVENT(i915_request_in,
  			   __entry->port = port;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
-		      __entry->dev, __entry->hw_id, __entry->class,
-		      __entry->instance, __entry->ctx, __entry->seqno,
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
+		      __entry->dev, __entry->class, __entry->instance,
+		      __entry->hw_id, __entry->ctx, __entry->seqno,
  		      __entry->prio, __entry->global_seqno, __entry->port)
  );
 
@@ -750,9 +750,9 @@ TRACE_EVENT(i915_request_out,
  			   __entry->completed = i915_request_completed(rq);
  			   ),
 
-		    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
-			      __entry->dev, __entry->hw_id, __entry->class,
-			      __entry->instance, __entry->ctx, __entry->seqno,
+		    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+			      __entry->dev, __entry->class, __entry->instance,
+			      __entry->hw_id, __entry->ctx, __entry->seqno,
  			      __entry->global_seqno, __entry->completed)
  );
 
@@ -842,9 +842,9 @@ TRACE_EVENT(i915_request_wait_begin,
  			   __entry->flags = flags;
  			   ),

drivers/gpu/drm/i915/i915_trace.h TRACE_EVENT(i915_request_wait_begin, · line 850

Quoted 10 lines
drivers/gpu/drm/i915/i915_trace.h +3 -3
 
-	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->class,
-		      __entry->instance, __entry->ctx, __entry->seqno,
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+		      __entry->dev, __entry->class, __entry->instance,
+		      __entry->hw_id, __entry->ctx, __entry->seqno,
  		      __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
  		      __entry->flags)
  );

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#3 lore raw

Re: [PATCH 2/3] drm/i915/trace: Remove engine out of the context sandwich

Quoted 11 lines · Lionel Landwerlin
Quoted 10 lines · Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

In the string tracepoint representation we ended up with the engine sandwiched between context hardware id and context fence id.

Move the two pieces of context data together for redability.

Binary records are left as is, that is both fields remaing under the existing name and ordering.

Quoted 8 lines
Quoted 5 lines

v2:
  * Do not consolidate the printk format, just reorder. (Lionel)

Cc Lionel Landwerlin <[email protected]>

Maybe there was misunderstanding on my previous comment.
What I wanted to let you know is that the parser in igt doesn't know (yet) how to deal with "engine=%u:%u".

Duh! Actually I'm wrong about that!
It's all fine for the parser. Just need to update the overlay logic.

Quoted 73 lines

The ordering of the field doesn't matter though.

Updating the parser is probably a one liner. There is some interesting logic behind though that expect the engine ids to be contiguous numbers.

Quoted 67 lines

---
  drivers/gpu/drm/i915/i915_trace.h | 30 +++++++++++++++---------------

  1 file changed, 15 insertions(+), 15 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +3 -2
index 7acea4052798..bac582ed3a0b 100644
@@ -638,9 +638,9 @@ TRACE_EVENT(i915_request_queue,
                  __entry->flags = flags;
                  ),
   -        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 flags=0x%x",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->flags)
   );

  @@ -668,9 +668,9 @@ DECLARE_EVENT_CLASS(i915_request,
                 __entry->global = rq->global_seqno;
                 ),
  -        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u,
global=%u",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                __entry->global)
  );
  @@ -718,9 +718,9 @@ TRACE_EVENT(i915_request_in,
                 __entry->port = port;
                 ),
  -        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u", -              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u,
prio=%u, global=%u, port=%u",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                __entry->prio, __entry->global_seqno, __entry->port)
  );
  @@ -750,9 +750,9 @@ TRACE_EVENT(i915_request_out,
                 __entry->completed = i915_request_completed(rq);
                 ),
  -            TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, completed?=%u", -                  __entry->dev, __entry->hw_id, __entry->class,
-                  __entry->instance, __entry->ctx, __entry->seqno,
+            TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u,
seqno=%u, global=%u, completed?=%u",
+                  __entry->dev, __entry->class, __entry->instance,
+                  __entry->hw_id, __entry->ctx, __entry->seqno,
                    __entry->global_seqno, __entry->completed)
  );
  @@ -842,9 +842,9 @@ TRACE_EVENT(i915_request_wait_begin,
                 __entry->flags = flags;
                 ),
  -        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x", -              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u,
global=%u, blocking=%u, flags=0x%x",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),

Quoted 8 lines
Quoted 2 lines

                __entry->flags)
  );

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#4 lore raw

Re: [PATCH 2/3] drm/i915/trace: Remove engine out of the context sandwich

In reply to Lionel Landwerlin
Quoted 14 lines · Lionel Landwerlin
Quoted 13 lines · Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

In the string tracepoint representation we ended up with the engine sandwiched between context hardware id and context fence id.

Move the two pieces of context data together for redability.

Binary records are left as is, that is both fields remaing under the existing name and ordering.

v2:
  * Do not consolidate the printk format, just reorder. (Lionel)

Quoted 6 lines
Quoted 2 lines
Cc Lionel Landwerlin <[email protected]>

Maybe there was misunderstanding on my previous comment.
What I wanted to let you know is that the parser in igt doesn't know (yet) how to deal with "engine=%u:%u". The ordering of the field doesn't matter though.

Ah I thought you were complaining about the ctx=%u.%u patch. Even though I left the binary stream layout intact I thought maybe you have something somewhere which parses the text.

Quoted 3 lines

Updating the parser is probably a one liner. There is some interesting logic behind though that expect the engine ids to be contiguous numbers.

Thanks, now just to find common ground with Chris. :)

Regards,

Tvrtko

Quoted 72 lines
Quoted 72 lines

---
  drivers/gpu/drm/i915/i915_trace.h | 30 +++++++++++++++---------------

  1 file changed, 15 insertions(+), 15 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +15 -15
index 7acea4052798..bac582ed3a0b 100644
@@ -638,9 +638,9 @@ TRACE_EVENT(i915_request_queue,
                  __entry->flags = flags;
                  ),
-        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 flags=0x%x",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->flags)
   );
@@ -668,9 +668,9 @@ DECLARE_EVENT_CLASS(i915_request,
                  __entry->global = rq->global_seqno;
                  ),
-        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 global=%u",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 global=%u",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->global)
   );
@@ -718,9 +718,9 @@ TRACE_EVENT(i915_request_in,
                  __entry->port = port;
                  ),
-        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 prio=%u, global=%u, port=%u",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 prio=%u, global=%u, port=%u",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->prio, __entry->global_seqno, __entry->port)
   );
@@ -750,9 +750,9 @@ TRACE_EVENT(i915_request_out,
                  __entry->completed = i915_request_completed(rq);
                  ),
-            TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, 
 seqno=%u, global=%u, completed?=%u",
-                  __entry->dev, __entry->hw_id, __entry->class,
-                  __entry->instance, __entry->ctx, __entry->seqno,
+            TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, 
 seqno=%u, global=%u, completed?=%u",
+                  __entry->dev, __entry->class, __entry->instance,
+                  __entry->hw_id, __entry->ctx, __entry->seqno,
                     __entry->global_seqno, __entry->completed)
   );
@@ -842,9 +842,9 @@ TRACE_EVENT(i915_request_wait_begin,
                  __entry->flags = flags;
                  ),
-        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 global=%u, blocking=%u, flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 global=%u, blocking=%u, flags=0x%x",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
Quoted 8 lines
Quoted 2 lines
drivers/gpu/drm/i915/i915_trace.h +0 -0
                 __entry->flags)

  );

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#5 lore raw

Re: [PATCH 2/3] drm/i915/trace: Remove engine out of the context sandwich

Quoted 16 lines · Tvrtko Ursulin
Quoted 14 lines · Lionel Landwerlin
Quoted 13 lines · Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

In the string tracepoint representation we ended up with the engine sandwiched between context hardware id and context fence id.

Move the two pieces of context data together for redability.

Binary records are left as is, that is both fields remaing under the existing name and ordering.

v2:
  * Do not consolidate the printk format, just reorder. (Lionel)

Quoted 8 lines
Quoted 6 lines
Quoted 2 lines
Cc Lionel Landwerlin <[email protected]>

Maybe there was misunderstanding on my previous comment.
What I wanted to let you know is that the parser in igt doesn't know (yet) how to deal with "engine=%u:%u". The ordering of the field doesn't matter though.

Ah I thought you were complaining about the ctx=%u.%u patch. Even though I left the binary stream layout intact I thought maybe you have something somewhere which parses the text.

Well.. left it intact in that patch but changed it with engine=class:instance.. :)

Regards,

Tvrtko

Quoted 90 lines
Quoted 3 lines

Updating the parser is probably a one liner. There is some interesting logic behind though that expect the engine ids to be contiguous numbers.

Thanks, now just to find common ground with Chris. :)

Regards,

Tvrtko

Quoted 80 lines
Quoted 73 lines

---
  drivers/gpu/drm/i915/i915_trace.h | 30 +++++++++++++++---------------

  1 file changed, 15 insertions(+), 15 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +15 -15
index 7acea4052798..bac582ed3a0b 100644
@@ -638,9 +638,9 @@ TRACE_EVENT(i915_request_queue,
                  __entry->flags = flags;
                  ),
-        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 flags=0x%x",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->flags)
   );
@@ -668,9 +668,9 @@ DECLARE_EVENT_CLASS(i915_request,
                  __entry->global = rq->global_seqno;
                  ),
-        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 global=%u",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 global=%u",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->global)
   );
@@ -718,9 +718,9 @@ TRACE_EVENT(i915_request_in,
                  __entry->port = port;
                  ),
-        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 prio=%u, global=%u, port=%u",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 prio=%u, global=%u, port=%u",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->prio, __entry->global_seqno, __entry->port)
   );
@@ -750,9 +750,9 @@ TRACE_EVENT(i915_request_out,
                  __entry->completed = i915_request_completed(rq);
                  ),
-            TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, 
 seqno=%u, global=%u, completed?=%u",
-                  __entry->dev, __entry->hw_id, __entry->class,
-                  __entry->instance, __entry->ctx, __entry->seqno,
+            TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, 
 seqno=%u, global=%u, completed?=%u",
+                  __entry->dev, __entry->class, __entry->instance,
+                  __entry->hw_id, __entry->ctx, __entry->seqno,
                     __entry->global_seqno, __entry->completed)
   );
@@ -842,9 +842,9 @@ TRACE_EVENT(i915_request_wait_begin,
                  __entry->flags = flags;
                  ),
-        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 global=%u, blocking=%u, flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->class,
-              __entry->instance, __entry->ctx, __entry->seqno,
+        TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, 
 global=%u, blocking=%u, flags=0x%x",
+              __entry->dev, __entry->class, __entry->instance,
+              __entry->hw_id, __entry->ctx, __entry->seqno,
                 __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
                 __entry->flags)
Quoted 1 line

  );

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

author maintainer
#6 lore raw

PATCH 3/3 drm/i915/trace: Context field needs to be 64-bit wide

In reply to Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

Underlaying field is u64 so the tracepoint needs to be as well.

---
 drivers/gpu/drm/i915/i915_trace.h | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +10 -10
index bac582ed3a0b..009862261218 100644
@@ -623,7 +623,7 @@ TRACE_EVENT(i915_request_queue,
 			     __field(u32, hw_id)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
+			     __field(u64, ctx)
 			     __field(u32, seqno)
 			     __field(u32, flags)
 			     ),
@@ -638,7 +638,7 @@ TRACE_EVENT(i915_request_queue,
 			   __entry->flags = flags;
 			   ),
 
-	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, flags=0x%x",
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, flags=0x%x",
 		      __entry->dev, __entry->class, __entry->instance,
 		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->flags)
@@ -653,7 +653,7 @@ DECLARE_EVENT_CLASS(i915_request,
 			     __field(u32, hw_id)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
+			     __field(u64, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global)
 			     ),
@@ -668,7 +668,7 @@ DECLARE_EVENT_CLASS(i915_request,
 			   __entry->global = rq->global_seqno;
 			   ),
 
-	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u",
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, global=%u",
 		      __entry->dev, __entry->class, __entry->instance,
 		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->global)
@@ -699,7 +699,7 @@ TRACE_EVENT(i915_request_in,
 			     __field(u32, hw_id)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
+			     __field(u64, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global_seqno)
 			     __field(u32, port)
@@ -718,7 +718,7 @@ TRACE_EVENT(i915_request_in,
 			   __entry->port = port;
 			   ),
 
-	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, prio=%u, global=%u, port=%u",
 		      __entry->dev, __entry->class, __entry->instance,
 		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->prio, __entry->global_seqno, __entry->port)
@@ -733,7 +733,7 @@ TRACE_EVENT(i915_request_out,
 			     __field(u32, hw_id)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
+			     __field(u64, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global_seqno)
 			     __field(u32, completed)
@@ -750,7 +750,7 @@ TRACE_EVENT(i915_request_out,
 			   __entry->completed = i915_request_completed(rq);
 			   ),
 
-		    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+		    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, global=%u, completed?=%u",
 			      __entry->dev, __entry->class, __entry->instance,
 			      __entry->hw_id, __entry->ctx, __entry->seqno,
 			      __entry->global_seqno, __entry->completed)
@@ -819,7 +819,7 @@ TRACE_EVENT(i915_request_wait_begin,
 			     __field(u32, hw_id)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
+			     __field(u64, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global)
 			     __field(unsigned int, flags)
@@ -842,7 +842,7 @@ TRACE_EVENT(i915_request_wait_begin,
 			   __entry->flags = flags;
 			   ),
 
-	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, global=%u, blocking=%u, flags=0x%x",
 		      __entry->dev, __entry->class, __entry->instance,
 		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
Signature · 6 lines
2.17.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#7 lore raw

Re: [PATCH 3/3] drm/i915/trace: Context field needs to be 64-bit wide

Quoting Tvrtko Ursulin (2018-05-25 09:26:42)

Quoted 15 lines

From: Tvrtko Ursulin <[email protected]>

Underlaying field is u64 so the tracepoint needs to be as well.

---
 drivers/gpu/drm/i915/i915_trace.h | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +0 -0
index bac582ed3a0b..009862261218 100644

drivers/gpu/drm/i915/i915_trace.h TRACE_EVENT(i915_request_queue, · line 626

Quoted 5 lines
drivers/gpu/drm/i915/i915_trace.h +1 -1
@@ -623,7 +623,7 @@ TRACE_EVENT(i915_request_queue,
                             __field(u32, hw_id)
                             __field(u16, class)
                             __field(u16, instance)
-                            __field(u32, ctx)
+                            __field(u64, ctx)

Hmm, we have a hole before the u64 if my counting is correct.

Hmm, hw_id is more related to the global seqno wouldn't you say? :) -Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

author maintainer
#8 lore raw

PATCH v2 3/3 drm/i915/trace: Context field needs to be 64-bit wide

From: Tvrtko Ursulin <[email protected]>

Underlaying field is u64 so the tracepoint needs to be as well.

v2:
* Re-order binary packet for 64-bit alignment. (Chris Wilson)

---
 drivers/gpu/drm/i915/i915_trace.h | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +10 -10
index bac582ed3a0b..3d5716d86e27 100644
@@ -621,9 +621,9 @@ TRACE_EVENT(i915_request_queue,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
+			     __field(u64, ctx)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, flags)
 			     ),
@@ -638,7 +638,7 @@ TRACE_EVENT(i915_request_queue,
 			   __entry->flags = flags;
 			   ),
 
-	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, flags=0x%x",
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, flags=0x%x",
 		      __entry->dev, __entry->class, __entry->instance,
 		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->flags)
@@ -651,9 +651,9 @@ DECLARE_EVENT_CLASS(i915_request,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
+			     __field(u64, ctx)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global)
 			     ),
@@ -668,7 +668,7 @@ DECLARE_EVENT_CLASS(i915_request,
 			   __entry->global = rq->global_seqno;
 			   ),
 
-	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u",
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, global=%u",
 		      __entry->dev, __entry->class, __entry->instance,
 		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->global)
@@ -697,9 +697,9 @@ TRACE_EVENT(i915_request_in,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
+			     __field(u64, ctx)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global_seqno)
 			     __field(u32, port)
@@ -718,7 +718,7 @@ TRACE_EVENT(i915_request_in,
 			   __entry->port = port;
 			   ),
 
-	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, prio=%u, global=%u, port=%u",
 		      __entry->dev, __entry->class, __entry->instance,
 		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->prio, __entry->global_seqno, __entry->port)
@@ -731,9 +731,9 @@ TRACE_EVENT(i915_request_out,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
+			     __field(u64, ctx)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global_seqno)
 			     __field(u32, completed)
@@ -750,7 +750,7 @@ TRACE_EVENT(i915_request_out,
 			   __entry->completed = i915_request_completed(rq);
 			   ),
 
-		    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+		    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, global=%u, completed?=%u",
 			      __entry->dev, __entry->class, __entry->instance,
 			      __entry->hw_id, __entry->ctx, __entry->seqno,
 			      __entry->global_seqno, __entry->completed)
@@ -817,9 +817,9 @@ TRACE_EVENT(i915_request_wait_begin,
 	    TP_STRUCT__entry(
 			     __field(u32, dev)
 			     __field(u32, hw_id)
+			     __field(u64, ctx)
 			     __field(u16, class)
 			     __field(u16, instance)
-			     __field(u32, ctx)
 			     __field(u32, seqno)
 			     __field(u32, global)
 			     __field(unsigned int, flags)
@@ -842,7 +842,7 @@ TRACE_EVENT(i915_request_wait_begin,
 			   __entry->flags = flags;
 			   ),
 
-	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+	    TP_printk("dev=%u, engine=%u:%u, hw_id=%u, ctx=%llu, seqno=%u, global=%u, blocking=%u, flags=0x%x",
 		      __entry->dev, __entry->class, __entry->instance,
 		      __entry->hw_id, __entry->ctx, __entry->seqno,
 		      __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
Signature · 6 lines
2.17.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Reviewed-by on v2 3/3
#9 lore raw

Re: [PATCH v2 3/3] drm/i915/trace: Context field needs to be 64-bit wide

Quoting Tvrtko Ursulin (2018-06-05 14:41:24)

Quoted 9 lines

From: Tvrtko Ursulin <[email protected]>

Underlaying field is u64 so the tracepoint needs to be as well.

v2:
* Re-order binary packet for 64-bit alignment. (Chris Wilson)

Couldn't see any holes,

-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#10 lore raw

✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs

In reply to Tvrtko Ursulin
== Series Details ==

== Series Details ==

Series: series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs
URL : https://patchwork.freedesktop.org/series/43763/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4238 -> Patchwork_9117 =

== Summary - WARNING ==

Minor unknown changes coming with Patchwork_9117 need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in Patchwork_9117, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

External URL: https://patchwork.freedesktop.org/api/1.0/series/43763/revisions/1/mbox/

== Possible new issues ==

Here are the unknown changes that may have been introduced in Patchwork_9117:

=== IGT changes ===

    ==== Warnings ====

    igt@gem_exec_gttfill@basic:
      fi-pnv-d510:        PASS -> SKIP

== Known issues ==

Here are the changes found in Patchwork_9117 that come from known issues:

=== IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_suspend@basic-s4-devices:
      fi-kbl-7500u:       PASS -> DMESG-WARN (fdo#105128)

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-cfl-s3:          PASS -> FAIL (fdo#103928, fdo#100368)

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-peppy:       PASS -> DMESG-FAIL (fdo#102614, fdo#106103)

    igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
      fi-cfl-s3:          PASS -> FAIL (fdo#103481)

    
    ==== Possible fixes ====

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-snb-2520m:       INCOMPLETE (fdo#103713) -> PASS

fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
fdo#103481 https://bugs.freedesktop.org/show_bug.cgi?id=103481
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103

== Participating hosts (44 -> 39) ==

Missing (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-skl-6700hq

== Build changes ==

* Linux: CI_DRM_4238 -> Patchwork_9117

CI_DRM_4238: 2771a5e6347eb63e43fdfc432a9f15ffb55ef209 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4498: f9ecb79ad8b02278cfdb5b82495df47061c04f8f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9117: c4abefa00271bb29045a20fee8839cef5bbd0fe2 @ git://anongit.freedesktop.org/gfx-ci/linux

== Linux commits ==

c4abefa00271 drm/i915/trace: Context field needs to be 64-bit wide de0692971fb8 drm/i915/trace: Remove engine out of the context sandwich bed2821f32e0 drm/i915/trace: Describe engines as class:instance pairs

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9117/issues.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reviewed-by on v1 1/3
#11 lore raw
In reply to Tvrtko Ursulin
Quoted 8 lines · Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

Instead of using the engine->id, use uabi_class:instance pairs in trace- points including engine info.

This will be more readable, more future proof and more stable for userspace consumption.

Quoted 7 lines

v2:
* Use u16 for class and instance. (Chris Wilson)

Quoted 255 lines
---
  drivers/gpu/drm/i915/i915_trace.h | 107 ++++++++++++++++++------------
  1 file changed, 65 insertions(+), 42 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +62 -40
index 5d4f78765083..7acea4052798 100644
@@ -591,21 +591,26 @@ TRACE_EVENT(i915_gem_ring_sync_to,
 
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
-			     __field(u32, sync_from)
-			     __field(u32, sync_to)
+			     __field(u32, from_class)
+			     __field(u32, from_instance)
+			     __field(u32, to_class)
+			     __field(u32, to_instance)
  			     __field(u32, seqno)
  			     ),
 
  	    TP_fast_assign(
  			   __entry->dev = from->i915->drm.primary->index;
-			   __entry->sync_from = from->engine->id;
-			   __entry->sync_to = to->engine->id;
+			   __entry->from_class = from->engine->uabi_class;
+			   __entry->from_instance = from->engine->instance;
+			   __entry->to_class = to->engine->uabi_class;
+			   __entry->to_instance = to->engine->instance;
  			   __entry->seqno = from->global_seqno;
  			   ),
 
-	    TP_printk("dev=%u, sync-from=%u, sync-to=%u, seqno=%u",
+	    TP_printk("dev=%u, sync-from=%u:%u, sync-to=%u:%u, seqno=%u",
  		      __entry->dev,
-		      __entry->sync_from, __entry->sync_to,
+		      __entry->from_class, __entry->from_instance,
+		      __entry->to_class, __entry->to_instance,
  		      __entry->seqno)
  );
 
@@ -616,7 +621,8 @@ TRACE_EVENT(i915_request_queue,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, flags)
@@ -625,15 +631,17 @@ TRACE_EVENT(i915_request_queue,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->flags = flags;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->flags)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, flags=0x%x",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->flags)
  );
 
  DECLARE_EVENT_CLASS(i915_request,
@@ -643,7 +651,8 @@ DECLARE_EVENT_CLASS(i915_request,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, global)
@@ -652,15 +661,17 @@ DECLARE_EVENT_CLASS(i915_request,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->global = rq->global_seqno;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->global)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->global)
  );
 
  DEFINE_EVENT(i915_request, i915_request_add,
@@ -686,7 +697,8 @@ TRACE_EVENT(i915_request_in,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, global_seqno)
@@ -697,7 +709,8 @@ TRACE_EVENT(i915_request_in,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->global_seqno = rq->global_seqno;
@@ -705,10 +718,10 @@ TRACE_EVENT(i915_request_in,
  			   __entry->port = port;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->prio, __entry->global_seqno,
-		      __entry->port)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->prio, __entry->global_seqno, __entry->port)
  );
 
  TRACE_EVENT(i915_request_out,
@@ -718,7 +731,8 @@ TRACE_EVENT(i915_request_out,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, global_seqno)
@@ -728,16 +742,17 @@ TRACE_EVENT(i915_request_out,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->global_seqno = rq->global_seqno;
  			   __entry->completed = i915_request_completed(rq);
  			   ),
 
-		    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
-			      __entry->dev, __entry->hw_id, __entry->ring,
-			      __entry->ctx, __entry->seqno,
+		    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+			      __entry->dev, __entry->hw_id, __entry->class,
+			      __entry->instance, __entry->ctx, __entry->seqno,
  			      __entry->global_seqno, __entry->completed)
  );
 
@@ -771,21 +786,23 @@ TRACE_EVENT(intel_engine_notify,
 
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, seqno)
  			     __field(bool, waiters)
  			     ),
 
  	    TP_fast_assign(
  			   __entry->dev = engine->i915->drm.primary->index;
-			   __entry->ring = engine->id;
+			   __entry->class = engine->uabi_class;
+			   __entry->instance = engine->instance;
  			   __entry->seqno = intel_engine_get_seqno(engine);
  			   __entry->waiters = waiters;
  			   ),
 
-	    TP_printk("dev=%u, ring=%u, seqno=%u, waiters=%u",
-		      __entry->dev, __entry->ring, __entry->seqno,
-		      __entry->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,
@@ -800,7 +817,8 @@ TRACE_EVENT(i915_request_wait_begin,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, global)
@@ -816,17 +834,19 @@ TRACE_EVENT(i915_request_wait_begin,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->global = rq->global_seqno;
  			   __entry->flags = flags;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->global,
-		      !!(__entry->flags & I915_WAIT_LOCKED), __entry->flags)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
+		      __entry->flags)
  );
 
  DEFINE_EVENT(i915_request, i915_request_wait_end,
@@ -966,21 +986,24 @@ TRACE_EVENT(switch_mm,
  	TP_ARGS(engine, to),
 
  	TP_STRUCT__entry(
-			__field(u32, ring)
+			__field(u16, class)
+			__field(u16, instance)
  			__field(struct i915_gem_context *, to)
  			__field(struct i915_address_space *, vm)
  			__field(u32, dev)
  	),
 
  	TP_fast_assign(
-			__entry->ring = engine->id;
+			__entry->class = engine->uabi_class;
+			__entry->instance = engine->instance;
  			__entry->to = to;
  			__entry->vm = to->ppgtt? &to->ppgtt->base : NULL;
  			__entry->dev = engine->i915->drm.primary->index;

drivers/gpu/drm/i915/i915_trace.h TRACE_EVENT(switch_mm, · line 1009

Quoted 10 lines
drivers/gpu/drm/i915/i915_trace.h +3 -2
  	),
 
-	TP_printk("dev=%u, ring=%u, ctx=%p, ctx_vm=%p",
-		  __entry->dev, __entry->ring, __entry->to, __entry->vm)
+	TP_printk("dev=%u, engine=%u:%u, ctx=%p, ctx_vm=%p",
+		  __entry->dev, __entry->class, __entry->instance, __entry->to,
+		  __entry->vm)
  );
 
  #endif /* _I915_TRACE_H_ */

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#12 lore raw

✓ Fi.CI.IGT: success for series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs

In reply to Tvrtko Ursulin
== Series Details ==

== Series Details ==

Series: series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs
URL : https://patchwork.freedesktop.org/series/43763/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4238_full -> Patchwork_9117_full =

== Summary - WARNING ==

Minor unknown changes coming with Patchwork_9117_full need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in Patchwork_9117_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

External URL: https://patchwork.freedesktop.org/api/1.0/series/43763/revisions/1/mbox/

== Possible new issues ==

Here are the unknown changes that may have been introduced in Patchwork_9117_full:

=== IGT changes ===

    ==== Warnings ====

    igt@gem_mocs_settings@mocs-rc6-dirty-render:
      shard-kbl:          SKIP -> PASS +1

    igt@gem_mocs_settings@mocs-rc6-render:
      shard-kbl:          PASS -> SKIP

== Known issues ==

Here are the changes found in Patchwork_9117_full that come from known issues:

=== IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_gtt:
      shard-glk:          PASS -> INCOMPLETE (fdo#103359, k.org#198133)

    igt@drv_selftest@live_hangcheck:
      shard-kbl:          NOTRUN -> DMESG-FAIL (fdo#106560)

    igt@gem_workarounds@suspend-resume:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665)

    igt@kms_flip_tiling@flip-to-y-tiled:
      shard-glk:          PASS -> FAIL (fdo#103822, fdo#104724)

    igt@kms_flip_tiling@flip-y-tiled:
      shard-glk:          PASS -> FAIL (fdo#104724)

    igt@pm_rps@waitboost:
      shard-apl:          PASS -> FAIL (fdo#102250)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_hangcheck:
      shard-apl:          DMESG-FAIL (fdo#106560) -> PASS

    igt@gem_ctx_isolation@bcs0-s3:
      shard-kbl:          INCOMPLETE (fdo#103665) -> PASS +1

    igt@gem_ppgtt@blt-vs-render-ctx0:
      shard-kbl:          INCOMPLETE (fdo#103665, fdo#106023) -> PASS

    igt@kms_flip_tiling@flip-x-tiled:
      shard-glk:          FAIL (fdo#103822, fdo#104724) -> PASS

fdo#102250 https://bugs.freedesktop.org/show_bug.cgi?id=102250
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133

== Participating hosts (5 -> 5) ==

No changes in participating hosts

== Build changes ==

* Linux: CI_DRM_4238 -> Patchwork_9117

CI_DRM_4238: 2771a5e6347eb63e43fdfc432a9f15ffb55ef209 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4498: f9ecb79ad8b02278cfdb5b82495df47061c04f8f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9117: c4abefa00271bb29045a20fee8839cef5bbd0fe2 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9117/shards.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#13 lore raw
In reply to Tvrtko Ursulin

Any update on this series?

(my comments were a bit fuzzy, but I gave Rb on patch 1 & 2).

Cheers,

-
Lionel

Quoted 270 lines · Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

Instead of using the engine->id, use uabi_class:instance pairs in trace- points including engine info.

This will be more readable, more future proof and more stable for userspace consumption.

v2:
* Use u16 for class and instance. (Chris Wilson)

---
  drivers/gpu/drm/i915/i915_trace.h | 107 ++++++++++++++++++------------
  1 file changed, 65 insertions(+), 42 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +62 -40
index 5d4f78765083..7acea4052798 100644
@@ -591,21 +591,26 @@ TRACE_EVENT(i915_gem_ring_sync_to,
 
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
-			     __field(u32, sync_from)
-			     __field(u32, sync_to)
+			     __field(u32, from_class)
+			     __field(u32, from_instance)
+			     __field(u32, to_class)
+			     __field(u32, to_instance)
  			     __field(u32, seqno)
  			     ),
 
  	    TP_fast_assign(
  			   __entry->dev = from->i915->drm.primary->index;
-			   __entry->sync_from = from->engine->id;
-			   __entry->sync_to = to->engine->id;
+			   __entry->from_class = from->engine->uabi_class;
+			   __entry->from_instance = from->engine->instance;
+			   __entry->to_class = to->engine->uabi_class;
+			   __entry->to_instance = to->engine->instance;
  			   __entry->seqno = from->global_seqno;
  			   ),
 
-	    TP_printk("dev=%u, sync-from=%u, sync-to=%u, seqno=%u",
+	    TP_printk("dev=%u, sync-from=%u:%u, sync-to=%u:%u, seqno=%u",
  		      __entry->dev,
-		      __entry->sync_from, __entry->sync_to,
+		      __entry->from_class, __entry->from_instance,
+		      __entry->to_class, __entry->to_instance,
  		      __entry->seqno)
  );
 
@@ -616,7 +621,8 @@ TRACE_EVENT(i915_request_queue,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, flags)
@@ -625,15 +631,17 @@ TRACE_EVENT(i915_request_queue,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->flags = flags;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->flags)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, flags=0x%x",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->flags)
  );
 
  DECLARE_EVENT_CLASS(i915_request,
@@ -643,7 +651,8 @@ DECLARE_EVENT_CLASS(i915_request,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, global)
@@ -652,15 +661,17 @@ DECLARE_EVENT_CLASS(i915_request,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->global = rq->global_seqno;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->global)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->global)
  );
 
  DEFINE_EVENT(i915_request, i915_request_add,
@@ -686,7 +697,8 @@ TRACE_EVENT(i915_request_in,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, global_seqno)
@@ -697,7 +709,8 @@ TRACE_EVENT(i915_request_in,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->global_seqno = rq->global_seqno;
@@ -705,10 +718,10 @@ TRACE_EVENT(i915_request_in,
  			   __entry->port = port;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->prio, __entry->global_seqno,
-		      __entry->port)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, prio=%u, global=%u, port=%u",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->prio, __entry->global_seqno, __entry->port)
  );
 
  TRACE_EVENT(i915_request_out,
@@ -718,7 +731,8 @@ TRACE_EVENT(i915_request_out,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, global_seqno)
@@ -728,16 +742,17 @@ TRACE_EVENT(i915_request_out,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->global_seqno = rq->global_seqno;
  			   __entry->completed = i915_request_completed(rq);
  			   ),
 
-		    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
-			      __entry->dev, __entry->hw_id, __entry->ring,
-			      __entry->ctx, __entry->seqno,
+		    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+			      __entry->dev, __entry->hw_id, __entry->class,
+			      __entry->instance, __entry->ctx, __entry->seqno,
  			      __entry->global_seqno, __entry->completed)
  );
 
@@ -771,21 +786,23 @@ TRACE_EVENT(intel_engine_notify,
 
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, seqno)
  			     __field(bool, waiters)
  			     ),
 
  	    TP_fast_assign(
  			   __entry->dev = engine->i915->drm.primary->index;
-			   __entry->ring = engine->id;
+			   __entry->class = engine->uabi_class;
+			   __entry->instance = engine->instance;
  			   __entry->seqno = intel_engine_get_seqno(engine);
  			   __entry->waiters = waiters;
  			   ),
 
-	    TP_printk("dev=%u, ring=%u, seqno=%u, waiters=%u",
-		      __entry->dev, __entry->ring, __entry->seqno,
-		      __entry->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,
@@ -800,7 +817,8 @@ TRACE_EVENT(i915_request_wait_begin,
  	    TP_STRUCT__entry(
  			     __field(u32, dev)
  			     __field(u32, hw_id)
-			     __field(u32, ring)
+			     __field(u16, class)
+			     __field(u16, instance)
  			     __field(u32, ctx)
  			     __field(u32, seqno)
  			     __field(u32, global)
@@ -816,17 +834,19 @@ TRACE_EVENT(i915_request_wait_begin,
  	    TP_fast_assign(
  			   __entry->dev = rq->i915->drm.primary->index;
  			   __entry->hw_id = rq->gem_context->hw_id;
-			   __entry->ring = rq->engine->id;
+			   __entry->class = rq->engine->uabi_class;
+			   __entry->instance = rq->engine->instance;
  			   __entry->ctx = rq->fence.context;
  			   __entry->seqno = rq->fence.seqno;
  			   __entry->global = rq->global_seqno;
  			   __entry->flags = flags;
  			   ),
 
-	    TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
-		      __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-		      __entry->seqno, __entry->global,
-		      !!(__entry->flags & I915_WAIT_LOCKED), __entry->flags)
+	    TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+		      __entry->dev, __entry->hw_id, __entry->class,
+		      __entry->instance, __entry->ctx, __entry->seqno,
+		      __entry->global, !!(__entry->flags & I915_WAIT_LOCKED),
+		      __entry->flags)
  );
 
  DEFINE_EVENT(i915_request, i915_request_wait_end,
@@ -966,21 +986,24 @@ TRACE_EVENT(switch_mm,
  	TP_ARGS(engine, to),
 
  	TP_STRUCT__entry(
-			__field(u32, ring)
+			__field(u16, class)
+			__field(u16, instance)
  			__field(struct i915_gem_context *, to)
  			__field(struct i915_address_space *, vm)
  			__field(u32, dev)
  	),
 
  	TP_fast_assign(
-			__entry->ring = engine->id;
+			__entry->class = engine->uabi_class;
+			__entry->instance = engine->instance;
  			__entry->to = to;
  			__entry->vm = to->ppgtt? &to->ppgtt->base : NULL;
  			__entry->dev = engine->i915->drm.primary->index;

drivers/gpu/drm/i915/i915_trace.h TRACE_EVENT(switch_mm, · line 1009

Quoted 10 lines
drivers/gpu/drm/i915/i915_trace.h +3 -2
  	),
 
-	TP_printk("dev=%u, ring=%u, ctx=%p, ctx_vm=%p",
-		  __entry->dev, __entry->ring, __entry->to, __entry->vm)
+	TP_printk("dev=%u, engine=%u:%u, ctx=%p, ctx_vm=%p",
+		  __entry->dev, __entry->class, __entry->instance, __entry->to,
+		  __entry->vm)
  );
 
  #endif /* _I915_TRACE_H_ */

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#14 lore raw
Quoted 3 lines · Lionel Landwerlin

Any update on this series?

(my comments were a bit fuzzy, but I gave Rb on patch 1 & 2).

Forgot about it for a bit. Just sent updated 3/3.

Was you r-b for 2/3 for v1 or v2 at the end?

Regards,

Tvrtko

Quoted 273 lines

Cheers,

-
Lionel

Quoted 266 lines · Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

Instead of using the engine->id, use uabi_class:instance pairs in trace- points including engine info.

This will be more readable, more future proof and more stable for userspace consumption.

v2:
  * Use u16 for class and instance. (Chris Wilson)

---
  drivers/gpu/drm/i915/i915_trace.h | 107 ++++++++++++++++++------------

  1 file changed, 65 insertions(+), 42 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +0 -0
index 5d4f78765083..7acea4052798 100644
@@ -591,21 +591,26 @@ TRACE_EVENT(i915_gem_ring_sync_to,

          TP_STRUCT__entry(
                   __field(u32, dev)
-                 __field(u32, sync_from)
-                 __field(u32, sync_to)
+                 __field(u32, from_class)
+                 __field(u32, from_instance)
+                 __field(u32, to_class)
+                 __field(u32, to_instance)
                   __field(u32, seqno)
                   ),
          TP_fast_assign(
                 __entry->dev = from->i915->drm.primary->index; -               __entry->sync_from = from->engine->id;
-               __entry->sync_to = to->engine->id;
+               __entry->from_class = from->engine->uabi_class; +               __entry->from_instance = from->engine->instance; +               __entry->to_class = to->engine->uabi_class; +               __entry->to_instance = to->engine->instance; __entry->seqno = from->global_seqno;
                 ),
-        TP_printk("dev=%u, sync-from=%u, sync-to=%u, seqno=%u", +        TP_printk("dev=%u, sync-from=%u:%u, sync-to=%u:%u, seqno=%u", __entry->dev,
-              __entry->sync_from, __entry->sync_to,
+              __entry->from_class, __entry->from_instance, +              __entry->to_class, __entry->to_instance, __entry->seqno)
  );

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -616,7 +621,8 @@ TRACE_EVENT(i915_request_queue,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, flags)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -625,15 +631,17 @@ TRACE_EVENT(i915_request_queue,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id;
-               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class;
+               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->flags = flags;
                 ),
-        TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx, -              __entry->seqno, __entry->flags)
+        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, flags=0x%x",
+              __entry->dev, __entry->hw_id, __entry->class, +              __entry->instance, __entry->ctx, __entry->seqno, +              __entry->flags)
  );
  DECLARE_EVENT_CLASS(i915_request,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -643,7 +651,8 @@ DECLARE_EVENT_CLASS(i915_request,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, global)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -652,15 +661,17 @@ DECLARE_EVENT_CLASS(i915_request,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id;
-               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class;
+               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->global = rq->global_seqno;
                 ),
-        TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u",
-              __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx, -              __entry->seqno, __entry->global)
+        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u",
+              __entry->dev, __entry->hw_id, __entry->class, +              __entry->instance, __entry->ctx, __entry->seqno, +              __entry->global)
  );
  DEFINE_EVENT(i915_request, i915_request_add,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -686,7 +697,8 @@ TRACE_EVENT(i915_request_in,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, global_seqno)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -697,7 +709,8 @@ TRACE_EVENT(i915_request_in,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id; -               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class; +               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->global_seqno = rq->global_seqno;

drivers/gpu/drm/i915/i915_trace.h +4 -4
@@ -705,10 +718,10 @@ TRACE_EVENT(i915_request_in,
                  __entry->port = port;
                  ),
-        TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, 
 prio=%u, global=%u, port=%u",
-              __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-              __entry->seqno, __entry->prio, __entry->global_seqno,
-              __entry->port)
+        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, 
 prio=%u, global=%u, port=%u",
+              __entry->dev, __entry->hw_id, __entry->class,
+              __entry->instance, __entry->ctx, __entry->seqno,
+              __entry->prio, __entry->global_seqno, __entry->port)
   );
   TRACE_EVENT(i915_request_out,
@@ -718,7 +731,8 @@ TRACE_EVENT(i915_request_out,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, global_seqno)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -728,16 +742,17 @@ TRACE_EVENT(i915_request_out,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id; -               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class; +               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->global_seqno = rq->global_seqno; __entry->completed = i915_request_completed(rq); ),
-            TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
-                  __entry->dev, __entry->hw_id, __entry->ring, -                  __entry->ctx, __entry->seqno,
+            TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+                  __entry->dev, __entry->hw_id, __entry->class, +                  __entry->instance, __entry->ctx, __entry->seqno, __entry->global_seqno, __entry->completed) );

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -771,21 +786,23 @@ TRACE_EVENT(intel_engine_notify,

          TP_STRUCT__entry(
                   __field(u32, dev)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, seqno)
                   __field(bool, waiters)
                   ),
          TP_fast_assign(
                 __entry->dev = engine->i915->drm.primary->index; -               __entry->ring = engine->id;
+               __entry->class = engine->uabi_class;
+               __entry->instance = engine->instance; __entry->seqno = intel_engine_get_seqno(engine); __entry->waiters = waiters;
                 ),
-        TP_printk("dev=%u, ring=%u, seqno=%u, waiters=%u", -              __entry->dev, __entry->ring, __entry->seqno, -              __entry->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,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -800,7 +817,8 @@ TRACE_EVENT(i915_request_wait_begin,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, global)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -816,17 +834,19 @@ TRACE_EVENT(i915_request_wait_begin,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id;
-               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class;
+               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->global = rq->global_seqno; __entry->flags = flags;
                 ),
-        TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx, -              __entry->seqno, __entry->global,
-              !!(__entry->flags & I915_WAIT_LOCKED), __entry->flags) +        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+              __entry->dev, __entry->hw_id, __entry->class, +              __entry->instance, __entry->ctx, __entry->seqno, +              __entry->global, !!(__entry->flags & I915_WAIT_LOCKED), +              __entry->flags)
  );
  DEFINE_EVENT(i915_request, i915_request_wait_end,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -966,21 +986,24 @@ TRACE_EVENT(switch_mm,
       TP_ARGS(engine, to),

      TP_STRUCT__entry(
-            __field(u32, ring)
+            __field(u16, class)
+            __field(u16, instance)
              __field(struct i915_gem_context *, to) __field(struct i915_address_space *, vm) __field(u32, dev)
      ),
      TP_fast_assign(
-            __entry->ring = engine->id;
+            __entry->class = engine->uabi_class;
+            __entry->instance = engine->instance; __entry->to = to;
              __entry->vm = to->ppgtt? &to->ppgtt->base : NULL; __entry->dev = engine->i915->drm.primary->index; ),
-    TP_printk("dev=%u, ring=%u, ctx=%p, ctx_vm=%p",
-          __entry->dev, __entry->ring, __entry->to, __entry->vm) +    TP_printk("dev=%u, engine=%u:%u, ctx=%p, ctx_vm=%p",
+          __entry->dev, __entry->class, __entry->instance, __entry->to, +          __entry->vm)

Quoted 8 lines
Quoted 2 lines

  );
  #endif /* _I915_TRACE_H_ */

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#15 lore raw
Quoted 9 lines · Tvrtko Ursulin
Quoted 3 lines · Lionel Landwerlin

Any update on this series?

(my comments were a bit fuzzy, but I gave Rb on patch 1 & 2).

Forgot about it for a bit. Just sent updated 3/3.

Was you r-b for 2/3 for v1 or v2 at the end?

It was for v2.

Thanks a lot,

-
Lionel

Quoted 293 lines

Regards,

Tvrtko

Quoted 287 lines

Cheers,

-
Lionel

Quoted 266 lines · Tvrtko Ursulin

From: Tvrtko Ursulin <[email protected]>

Instead of using the engine->id, use uabi_class:instance pairs in trace- points including engine info.

This will be more readable, more future proof and more stable for userspace consumption.

v2:
  * Use u16 for class and instance. (Chris Wilson)

---
  drivers/gpu/drm/i915/i915_trace.h | 107
++++++++++++++++++------------

  1 file changed, 65 insertions(+), 42 deletions(-)
drivers/gpu/drm/i915/i915_trace.h +0 -0
index 5d4f78765083..7acea4052798 100644
@@ -591,21 +591,26 @@ TRACE_EVENT(i915_gem_ring_sync_to,

          TP_STRUCT__entry(
                   __field(u32, dev)
-                 __field(u32, sync_from)
-                 __field(u32, sync_to)
+                 __field(u32, from_class)
+                 __field(u32, from_instance)
+                 __field(u32, to_class)
+                 __field(u32, to_instance)
                   __field(u32, seqno)
                   ),
          TP_fast_assign(
                 __entry->dev = from->i915->drm.primary->index; -               __entry->sync_from = from->engine->id;
-               __entry->sync_to = to->engine->id;
+               __entry->from_class = from->engine->uabi_class; +               __entry->from_instance = from->engine->instance; +               __entry->to_class = to->engine->uabi_class; +               __entry->to_instance = to->engine->instance; __entry->seqno = from->global_seqno;
                 ),
-        TP_printk("dev=%u, sync-from=%u, sync-to=%u, seqno=%u", +        TP_printk("dev=%u, sync-from=%u:%u, sync-to=%u:%u, seqno=%u", __entry->dev,
-              __entry->sync_from, __entry->sync_to,
+              __entry->from_class, __entry->from_instance, +              __entry->to_class, __entry->to_instance, __entry->seqno)
  );

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -616,7 +621,8 @@ TRACE_EVENT(i915_request_queue,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, flags)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -625,15 +631,17 @@ TRACE_EVENT(i915_request_queue,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id; -               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class; +               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->flags = flags;
                 ),
-        TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-              __entry->seqno, __entry->flags)
+        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, flags=0x%x",
+              __entry->dev, __entry->hw_id, __entry->class, +              __entry->instance, __entry->ctx, __entry->seqno, +              __entry->flags)
  );
  DECLARE_EVENT_CLASS(i915_request,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -643,7 +651,8 @@ DECLARE_EVENT_CLASS(i915_request,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, global)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -652,15 +661,17 @@ DECLARE_EVENT_CLASS(i915_request,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id; -               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class; +               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->global = rq->global_seqno; ),
-        TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u",
-              __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-              __entry->seqno, __entry->global)
+        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u",
+              __entry->dev, __entry->hw_id, __entry->class, +              __entry->instance, __entry->ctx, __entry->seqno, +              __entry->global)
  );
  DEFINE_EVENT(i915_request, i915_request_add,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -686,7 +697,8 @@ TRACE_EVENT(i915_request_in,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, global_seqno)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -697,7 +709,8 @@ TRACE_EVENT(i915_request_in,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id; -               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class; +               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->global_seqno = rq->global_seqno;

drivers/gpu/drm/i915/i915_trace.h +4 -4
@@ -705,10 +718,10 @@ TRACE_EVENT(i915_request_in,
                  __entry->port = port;
                  ),
-        TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, 
 prio=%u, global=%u, port=%u",
-              __entry->dev, __entry->hw_id, __entry->ring, 
 __entry->ctx,
-              __entry->seqno, __entry->prio, __entry->global_seqno,
-              __entry->port)
+        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, 
 seqno=%u, prio=%u, global=%u, port=%u",
+              __entry->dev, __entry->hw_id, __entry->class,
+              __entry->instance, __entry->ctx, __entry->seqno,
+              __entry->prio, __entry->global_seqno, __entry->port)
   );

  TRACE_EVENT(i915_request_out,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -718,7 +731,8 @@ TRACE_EVENT(i915_request_out,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, global_seqno)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -728,16 +742,17 @@ TRACE_EVENT(i915_request_out,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id; -               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class; +               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->global_seqno = rq->global_seqno; __entry->completed = i915_request_completed(rq); ),
-            TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
-                  __entry->dev, __entry->hw_id, __entry->ring, -                  __entry->ctx, __entry->seqno,
+            TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, completed?=%u",
+                  __entry->dev, __entry->hw_id, __entry->class, +                  __entry->instance, __entry->ctx, __entry->seqno, __entry->global_seqno, __entry->completed) );

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -771,21 +786,23 @@ TRACE_EVENT(intel_engine_notify,

          TP_STRUCT__entry(
                   __field(u32, dev)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, seqno)
                   __field(bool, waiters)
                   ),
          TP_fast_assign(
                 __entry->dev = engine->i915->drm.primary->index; -               __entry->ring = engine->id;
+               __entry->class = engine->uabi_class;
+               __entry->instance = engine->instance; __entry->seqno = intel_engine_get_seqno(engine); __entry->waiters = waiters;
                 ),
-        TP_printk("dev=%u, ring=%u, seqno=%u, waiters=%u", -              __entry->dev, __entry->ring, __entry->seqno, -              __entry->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,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -800,7 +817,8 @@ TRACE_EVENT(i915_request_wait_begin,

          TP_STRUCT__entry(
                   __field(u32, dev)
                   __field(u32, hw_id)
-                 __field(u32, ring)
+                 __field(u16, class)
+                 __field(u16, instance)
                   __field(u32, ctx)
                   __field(u32, seqno)
                   __field(u32, global)

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -816,17 +834,19 @@ TRACE_EVENT(i915_request_wait_begin,

          TP_fast_assign(
                 __entry->dev = rq->i915->drm.primary->index; __entry->hw_id = rq->gem_context->hw_id;
-               __entry->ring = rq->engine->id;
+               __entry->class = rq->engine->uabi_class;
+               __entry->instance = rq->engine->instance; __entry->ctx = rq->fence.context; __entry->seqno = rq->fence.seqno; __entry->global = rq->global_seqno; __entry->flags = flags;
                 ),
-        TP_printk("dev=%u, hw_id=%u, ring=%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
-              __entry->dev, __entry->hw_id, __entry->ring, __entry->ctx,
-              __entry->seqno, __entry->global,
-              !!(__entry->flags & I915_WAIT_LOCKED), __entry->flags) +        TP_printk("dev=%u, hw_id=%u, engine=%u:%u, ctx=%u, seqno=%u, global=%u, blocking=%u, flags=0x%x",
+              __entry->dev, __entry->hw_id, __entry->class, +              __entry->instance, __entry->ctx, __entry->seqno, +              __entry->global, !!(__entry->flags & I915_WAIT_LOCKED), +              __entry->flags)
  );
  DEFINE_EVENT(i915_request, i915_request_wait_end,

drivers/gpu/drm/i915/i915_trace.h +0 -0
@@ -966,21 +986,24 @@ TRACE_EVENT(switch_mm,
       TP_ARGS(engine, to),

      TP_STRUCT__entry(
-            __field(u32, ring)
+            __field(u16, class)
+            __field(u16, instance)
              __field(struct i915_gem_context *, to) __field(struct i915_address_space *, vm) __field(u32, dev)
      ),
      TP_fast_assign(
-            __entry->ring = engine->id;
+            __entry->class = engine->uabi_class;
+            __entry->instance = engine->instance; __entry->to = to;
              __entry->vm = to->ppgtt? &to->ppgtt->base : NULL; __entry->dev = engine->i915->drm.primary->index; ),

Quoted 8 lines

-    TP_printk("dev=%u, ring=%u, ctx=%p, ctx_vm=%p",
-          __entry->dev, __entry->ring, __entry->to, __entry->vm) +    TP_printk("dev=%u, engine=%u:%u, ctx=%p, ctx_vm=%p", +          __entry->dev, __entry->class, __entry->instance, __entry->to,
+          __entry->vm)
  );
  #endif /* _I915_TRACE_H_ */

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#16 lore raw

✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs (rev2)

In reply to Tvrtko Ursulin
== Series Details ==

== Series Details ==

Series: series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs (rev2)
URL : https://patchwork.freedesktop.org/series/43763/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4279 -> Patchwork_9202 =

== Summary - SUCCESS ==

No regressions found.

External URL: https://patchwork.freedesktop.org/api/1.0/series/43763/revisions/2/mbox/

== Known issues ==

Here are the changes found in Patchwork_9202 that come from known issues:

=== IGT changes ===

    ==== Issues hit ====

    igt@drv_module_reload@basic-reload:
      fi-glk-j4005:       NOTRUN -> DMESG-WARN (fdo#106725, fdo#106248)

    igt@kms_flip@basic-flip-vs-modeset:
      fi-glk-j4005:       NOTRUN -> DMESG-WARN (fdo#106000)

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-glk-j4005:       NOTRUN -> FAIL (fdo#100368)

    igt@kms_flip@basic-plain-flip:
      fi-glk-j4005:       NOTRUN -> DMESG-WARN (fdo#106097)

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-4200u:       PASS -> DMESG-FAIL (fdo#106103, fdo#102614)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-bxt-dsi:         NOTRUN -> INCOMPLETE (fdo#103927)

fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
fdo#106097 https://bugs.freedesktop.org/show_bug.cgi?id=106097
fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103
fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248
fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725

== Participating hosts (39 -> 37) ==

Additional (2): fi-glk-j4005 fi-bxt-dsi
Missing (4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-skl-6700hq

== Build changes ==

* Linux: CI_DRM_4279 -> Patchwork_9202

CI_DRM_4279: c17149502fba5d36314b384bbf43b2b9c93292cf @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4507: 938135f033d7fd79c04a7a042d40f9d074489ffd @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9202: e2b0099804b3dba0e9683e6a3e1e7855751a7f08 @ git://anongit.freedesktop.org/gfx-ci/linux

== Linux commits ==

e2b0099804b3 drm/i915/trace: Context field needs to be 64-bit wide 3600d64863f5 drm/i915/trace: Remove engine out of the context sandwich 2d2eadc345ba drm/i915/trace: Describe engines as class:instance pairs

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9202/issues.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#17 lore raw

Re: ✓ Fi.CI.BAT: success for series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs (rev2)

Quoted 68 lines · Patchwork

== Series Details ==

Series: series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs (rev2)
URL : https://patchwork.freedesktop.org/series/43763/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4279 -> Patchwork_9202 =

== Summary - SUCCESS ==

No regressions found.

   External URL: https://patchwork.freedesktop.org/api/1.0/series/43763/revisions/2/mbox/

== Known issues ==

   Here are the changes found in Patchwork_9202 that come from known issues:

   === IGT changes ===

     ==== Issues hit ====

     igt@drv_module_reload@basic-reload:
       fi-glk-j4005:       NOTRUN -> DMESG-WARN (fdo#106725, fdo#106248)

     igt@kms_flip@basic-flip-vs-modeset:
       fi-glk-j4005:       NOTRUN -> DMESG-WARN (fdo#106000)

     igt@kms_flip@basic-flip-vs-wf_vblank:
       fi-glk-j4005:       NOTRUN -> FAIL (fdo#100368)

     igt@kms_flip@basic-plain-flip:
       fi-glk-j4005:       NOTRUN -> DMESG-WARN (fdo#106097)

     igt@kms_frontbuffer_tracking@basic:
       fi-hsw-4200u:       PASS -> DMESG-FAIL (fdo#106103, fdo#102614)

     igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
       fi-bxt-dsi:         NOTRUN -> INCOMPLETE (fdo#103927)

     
   fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
   fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
   fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
   fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
   fdo#106097 https://bugs.freedesktop.org/show_bug.cgi?id=106097
   fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103
   fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248
   fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725

== Participating hosts (39 -> 37) ==

   Additional (2): fi-glk-j4005 fi-bxt-dsi
   Missing    (4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-skl-6700hq

== Build changes ==

* Linux: CI_DRM_4279 -> Patchwork_9202

   CI_DRM_4279: c17149502fba5d36314b384bbf43b2b9c93292cf @ git://anongit.freedesktop.org/gfx-ci/linux
   IGT_4507: 938135f033d7fd79c04a7a042d40f9d074489ffd @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
   Patchwork_9202: e2b0099804b3dba0e9683e6a3e1e7855751a7f08 @ git://anongit.freedesktop.org/gfx-ci/linux
Quoted 5 lines

== Linux commits ==

e2b0099804b3 drm/i915/trace: Context field needs to be 64-bit wide 3600d64863f5 drm/i915/trace: Remove engine out of the context sandwich 2d2eadc345ba drm/i915/trace: Describe engines as class:instance pairs

Pushed. Now onto IGT updates...

Regards,

Tvrtko

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#18 lore raw

✓ Fi.CI.IGT: success for series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs (rev2)

In reply to Tvrtko Ursulin
== Series Details ==

== Series Details ==

Series: series starting with [1/3] drm/i915/trace: Describe engines as class:instance pairs (rev2)
URL : https://patchwork.freedesktop.org/series/43763/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4279_full -> Patchwork_9202_full =

== Summary - WARNING ==

Minor unknown changes coming with Patchwork_9202_full need to be verified manually.

If you think the reported changes have nothing to do with the changes introduced in Patchwork_9202_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.

External URL: https://patchwork.freedesktop.org/api/1.0/series/43763/revisions/2/mbox/

== Possible new issues ==

Here are the unknown changes that may have been introduced in Patchwork_9202_full:

=== IGT changes ===

    ==== Warnings ====

    igt@gem_exec_schedule@deep-vebox:
      shard-kbl:          SKIP -> PASS +1

== Known issues ==

Here are the changes found in Patchwork_9202_full that come from known issues:

=== IGT changes ===

    ==== Issues hit ====

    igt@gem_eio@hibernate:
      shard-snb:          PASS -> INCOMPLETE (fdo#105411)

    igt@kms_flip@2x-plain-flip-ts-check:
      shard-hsw:          PASS -> FAIL (fdo#100368) +1
      shard-glk:          PASS -> FAIL (fdo#100368) +2

    igt@kms_flip_tiling@flip-y-tiled:
      shard-glk:          PASS -> FAIL (fdo#104724, fdo#103822)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_gtt:
      shard-kbl:          INCOMPLETE (fdo#103665) -> PASS

    igt@kms_atomic_transition@1x-modeset-transitions-nonblocking-fencing:
      shard-glk:          FAIL (fdo#105703) -> PASS

    igt@kms_flip@2x-flip-vs-expired-vblank:
      shard-glk:          FAIL (fdo#105189) -> PASS

    igt@kms_flip@2x-modeset-vs-vblank-race:
      shard-glk:          FAIL (fdo#103060) -> PASS

    igt@kms_flip@plain-flip-fb-recreate-interruptible:
      shard-glk:          FAIL (fdo#100368) -> PASS

    igt@kms_flip_tiling@flip-to-y-tiled:
      shard-glk:          FAIL (fdo#104724, fdo#103822) -> PASS

fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
fdo#105189 https://bugs.freedesktop.org/show_bug.cgi?id=105189
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#105703 https://bugs.freedesktop.org/show_bug.cgi?id=105703

== Participating hosts (5 -> 5) ==

No changes in participating hosts

== Build changes ==

* Linux: CI_DRM_4279 -> Patchwork_9202

CI_DRM_4279: c17149502fba5d36314b384bbf43b2b9c93292cf @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4507: 938135f033d7fd79c04a7a042d40f9d074489ffd @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9202: e2b0099804b3dba0e9683e6a3e1e7855751a7f08 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9202/shards.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx