OSDN Git Service

drm/amdgpu: replace fence pointer with fence data in traces
authorAndres Rodriguez <andresx7@gmail.com>
Fri, 10 Mar 2017 02:25:54 +0000 (21:25 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 30 Mar 2017 03:53:56 +0000 (23:53 -0400)
Fence data is easier to read and allows us to correlate to identify
corresponding dma_fence ftrace events.

Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h

index 39529a1..88e1704 100644 (file)
@@ -102,6 +102,9 @@ TRACE_EVENT(amdgpu_cs_ioctl,
            TP_ARGS(job),
            TP_STRUCT__entry(
                             __field(uint64_t, sched_job_id)
+                            __string(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
+                            __field(unsigned int, context)
+                            __field(unsigned int, seqno)
                             __field(struct dma_fence *, fence)
                             __field(char *, ring_name)
                             __field(u32, num_ibs)
@@ -109,13 +112,15 @@ TRACE_EVENT(amdgpu_cs_ioctl,
 
            TP_fast_assign(
                           __entry->sched_job_id = job->base.id;
-                          __entry->fence = &job->base.s_fence->finished;
+                          __assign_str(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
+                          __entry->context = job->base.s_fence->finished.context;
+                          __entry->seqno = job->base.s_fence->finished.seqno;
                           __entry->ring_name = job->ring->name;
                           __entry->num_ibs = job->num_ibs;
                           ),
-           TP_printk("sched_job=%llu, sched_fence=%p, ring_name=%s, num_ibs=%u",
-                     __entry->sched_job_id,
-                     __entry->fence, __entry->ring_name, __entry->num_ibs)
+           TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
+                     __entry->sched_job_id, __get_str(timeline), __entry->context,
+                     __entry->seqno, __entry->ring_name, __entry->num_ibs)
 );
 
 TRACE_EVENT(amdgpu_sched_run_job,