drm/amdgpu: add command submission workflow tracepoint
OGL needs these tracepoints to investigate performance issue. Change-Id: I5e58187d061253f7d665dfce8e4e163ba91d3e2b Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
This commit is contained in:

committed by
Alex Deucher

parent
5f2e816b29
commit
7034decf6a
@@ -16,6 +16,8 @@ TRACE_EVENT(amd_sched_job,
|
||||
TP_ARGS(sched_job),
|
||||
TP_STRUCT__entry(
|
||||
__field(struct amd_sched_entity *, entity)
|
||||
__field(struct amd_sched_job *, sched_job)
|
||||
__field(struct fence *, fence)
|
||||
__field(const char *, name)
|
||||
__field(u32, job_count)
|
||||
__field(int, hw_job_count)
|
||||
@@ -23,16 +25,32 @@ TRACE_EVENT(amd_sched_job,
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->entity = sched_job->s_entity;
|
||||
__entry->sched_job = sched_job;
|
||||
__entry->fence = &sched_job->s_fence->base;
|
||||
__entry->name = sched_job->sched->name;
|
||||
__entry->job_count = kfifo_len(
|
||||
&sched_job->s_entity->job_queue) / sizeof(sched_job);
|
||||
__entry->hw_job_count = atomic_read(
|
||||
&sched_job->sched->hw_rq_count);
|
||||
),
|
||||
TP_printk("entity=%p, ring=%s, job count:%u, hw job count:%d",
|
||||
__entry->entity, __entry->name, __entry->job_count,
|
||||
__entry->hw_job_count)
|
||||
TP_printk("entity=%p, sched job=%p, fence=%p, ring=%s, job count:%u, hw job count:%d",
|
||||
__entry->entity, __entry->sched_job, __entry->fence, __entry->name,
|
||||
__entry->job_count, __entry->hw_job_count)
|
||||
);
|
||||
|
||||
TRACE_EVENT(amd_sched_process_job,
|
||||
TP_PROTO(struct amd_sched_fence *fence),
|
||||
TP_ARGS(fence),
|
||||
TP_STRUCT__entry(
|
||||
__field(struct fence *, fence)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->fence = &fence->base;
|
||||
),
|
||||
TP_printk("fence=%p signaled", __entry->fence)
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
/* This part must be outside protection */
|
||||
|
@@ -346,6 +346,7 @@ static void amd_sched_process_job(struct fence *f, struct fence_cb *cb)
|
||||
list_del_init(&s_fence->list);
|
||||
spin_unlock_irqrestore(&sched->fence_list_lock, flags);
|
||||
}
|
||||
trace_amd_sched_process_job(s_fence);
|
||||
fence_put(&s_fence->base);
|
||||
wake_up_interruptible(&sched->wake_up_worker);
|
||||
}
|
||||
|
Reference in New Issue
Block a user