diff options
author | Andres Rodriguez <andresx7@gmail.com> | 2017-02-24 13:20:58 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-03-29 23:53:32 -0400 |
commit | 82c6bd46bf8bc63a95e5b63b7d397812ee7e8b20 (patch) | |
tree | 7e8cb06b25553a3f92109aaec560dd7e87335fd7 /drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | |
parent | f8d569011c9633f5b16438216543b24b2655dcb9 (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.h | 11 |
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 | ||