aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
diff options
context:
space:
mode:
authorAndres Rodriguez <andresx7@gmail.com>2017-02-24 13:20:58 -0500
committerAlex Deucher <alexander.deucher@amd.com>2017-03-29 23:53:32 -0400
commit82c6bd46bf8bc63a95e5b63b7d397812ee7e8b20 (patch)
tree7e8cb06b25553a3f92109aaec560dd7e87335fd7 /drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
parentf8d569011c9633f5b16438216543b24b2655dcb9 (diff)
drm/amdgpu: trace fence details in amdgpu_sched_run_job
This information is intended to provide the required data to associate amdgpu tracepoints with their corresponding dma_fence_* events. 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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
index 01623d1ef710..cc9a31d859dc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
@@ -130,6 +130,9 @@ TRACE_EVENT(amdgpu_sched_run_job,
130 __field(struct amd_sched_job *, sched_job) 130 __field(struct amd_sched_job *, sched_job)
131 __field(struct amdgpu_ib *, ib) 131 __field(struct amdgpu_ib *, ib)
132 __field(struct dma_fence *, fence) 132 __field(struct dma_fence *, fence)
133 __string(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
134 __field(unsigned int, context)
135 __field(unsigned int, seqno)
133 __field(char *, ring_name) 136 __field(char *, ring_name)
134 __field(u32, num_ibs) 137 __field(u32, num_ibs)
135 ), 138 ),
@@ -139,12 +142,16 @@ TRACE_EVENT(amdgpu_sched_run_job,
139 __entry->sched_job = &job->base; 142 __entry->sched_job = &job->base;
140 __entry->ib = job->ibs; 143 __entry->ib = job->ibs;
141 __entry->fence = &job->base.s_fence->finished; 144 __entry->fence = &job->base.s_fence->finished;
145 __assign_str(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
146 __entry->context = job->base.s_fence->finished.context;
147 __entry->seqno = job->base.s_fence->finished.seqno;
142 __entry->ring_name = job->ring->name; 148 __entry->ring_name = job->ring->name;
143 __entry->num_ibs = job->num_ibs; 149 __entry->num_ibs = job->num_ibs;
144 ), 150 ),
145 TP_printk("adev=%p, sched_job=%p, first ib=%p, sched fence=%p, ring name=%s, num_ibs=%u", 151 TP_printk("adev=%p, sched_job=%p, first ib=%p, sched fence=%p, timeline=%s, context=%u, seqno=%u, ring name=%s, num_ibs=%u",
146 __entry->adev, __entry->sched_job, __entry->ib, 152 __entry->adev, __entry->sched_job, __entry->ib,
147 __entry->fence, __entry->ring_name, __entry->num_ibs) 153 __entry->fence, __get_str(timeline), __entry->context, __entry->seqno,
154 __entry->ring_name, __entry->num_ibs)
148); 155);
149 156
150 157