]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/multi_queue: Add trace event for the multi queue timestamp
authorUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Thu, 7 May 2026 16:20:26 +0000 (09:20 -0700)
committerUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Fri, 8 May 2026 20:48:48 +0000 (13:48 -0700)
Add a trace event for multi queue timestamp capture.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Link: https://patch.msgid.link/20260507162016.3888309-22-umesh.nerlige.ramappa@intel.com
drivers/gpu/drm/xe/xe_lrc.c
drivers/gpu/drm/xe/xe_trace_lrc.h

index 2e7316c2207bbd63bbc8a02f041e35dc4211b971..a4292a11391d3f8f2b8fbfb380f05891dc36388e 100644 (file)
@@ -2712,6 +2712,8 @@ static u64 xe_lrc_update_multi_queue_timestamp(struct xe_lrc *lrc, u64 *old_ts)
        *old_ts = lrc->queue_timestamp;
        lrc->queue_timestamp = xe_lrc_multi_queue_timestamp(lrc);
 
+       trace_xe_lrc_update_queue_timestamp(lrc, *old_ts);
+
        return lrc->queue_timestamp;
 }
 
index d525cbee1e341135d4be56fece303b9863bafe18..5c4cfa0c1fe9398ec8de18820581d5c3a4cf53cf 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/tracepoint.h>
 #include <linux/types.h>
 
+#include "xe_exec_queue_types.h"
 #include "xe_gt_types.h"
 #include "xe_lrc.h"
 #include "xe_lrc_types.h"
@@ -42,6 +43,32 @@ TRACE_EVENT(xe_lrc_update_timestamp,
                      __get_str(device_id))
 );
 
+TRACE_EVENT(xe_lrc_update_queue_timestamp,
+           TP_PROTO(struct xe_lrc *lrc, uint64_t old),
+           TP_ARGS(lrc, old),
+           TP_STRUCT__entry(
+                    __field(struct xe_lrc *, lrc)
+                    __field(struct xe_lrc *, primary_lrc)
+                    __field(u64, old)
+                    __field(u64, new)
+                    __string(name, lrc->fence_ctx.name)
+                    __string(device_id, __dev_name_lrc(lrc))
+                    ),
+
+           TP_fast_assign(
+                  __entry->lrc = lrc;
+                  __entry->primary_lrc = lrc->multi_queue.primary_lrc;
+                  __entry->old = old;
+                  __entry->new = lrc->queue_timestamp;
+                  __assign_str(name);
+                  __assign_str(device_id);
+                  ),
+           TP_printk("lrc=%p primary_lrc=%p lrc->name=%s old=%llu new=%llu device_id:%s",
+                     __entry->lrc, __entry->primary_lrc, __get_str(name),
+                     __entry->old, __entry->new,
+                     __get_str(device_id))
+);
+
 #endif
 
 /* This part must be outside protection */