[PATCH v8 06/10] drm/sched: add the drm_client_id to the drm_sched_run/exec_job events

Pierre-Eric Pelloux-Prayer posted 10 patches 9 months ago
There is a newer version of this series
[PATCH v8 06/10] drm/sched: add the drm_client_id to the drm_sched_run/exec_job events
Posted by Pierre-Eric Pelloux-Prayer 9 months ago
For processes with multiple drm_file instances, the drm_client_id is
the only way to map jobs back to their unique owner.

It's even more useful if drm client_name is set, because now a tool
can map jobs to the client name instead of only having access to
the process name.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
---
 drivers/gpu/drm/scheduler/gpu_scheduler_trace.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h b/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h
index 5d9992ad47d3..38cdd659a286 100644
--- a/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h
+++ b/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h
@@ -43,6 +43,7 @@ DECLARE_EVENT_CLASS(drm_sched_job,
 			     __string(dev, dev_name(sched_job->sched->dev))
 			     __field(u64, fence_context)
 			     __field(u64, fence_seqno)
+			     __field(u64, client_id)
 			     ),
 
 	    TP_fast_assign(
@@ -54,11 +55,12 @@ DECLARE_EVENT_CLASS(drm_sched_job,
 			   __assign_str(dev);
 			   __entry->fence_context = sched_job->s_fence->finished.context;
 			   __entry->fence_seqno = sched_job->s_fence->finished.seqno;
+			   __entry->client_id = sched_job->s_fence->drm_client_id;
 			   ),
-	    TP_printk("dev=%s, id=%llu, fence=%llu:%llu, ring=%s, job count:%u, hw job count:%d",
+	    TP_printk("dev=%s, id=%llu, fence=%llu:%llu, ring=%s, job count:%u, hw job count:%d, client_id:%llu",
 		      __get_str(dev), __entry->id,
 		      __entry->fence_context, __entry->fence_seqno, __get_str(name),
-		      __entry->job_count, __entry->hw_job_count)
+		      __entry->job_count, __entry->hw_job_count, __entry->client_id)
 );
 
 DEFINE_EVENT(drm_sched_job, drm_sched_job,
-- 
2.43.0

Re: [PATCH v8 06/10] drm/sched: add the drm_client_id to the drm_sched_run/exec_job events
Posted by Philipp Stanner 8 months, 1 week ago
On Thu, 2025-03-20 at 10:58 +0100, Pierre-Eric Pelloux-Prayer wrote:
> For processes with multiple drm_file instances, the drm_client_id is
> the only way to map jobs back to their unique owner.
> 
> It's even more useful if drm client_name is set, because now a tool
> can map jobs to the client name instead of only having access to
> the process name.
> 
> Reviewed-by: Christian König <christian.koenig@amd.com>
> Signed-off-by: Pierre-Eric Pelloux-Prayer

Acked-by: Philipp Stanner <phasta@kernel.org>

> <pierre-eric.pelloux-prayer@amd.com>
> ---
>  drivers/gpu/drm/scheduler/gpu_scheduler_trace.h | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h
> b/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h
> index 5d9992ad47d3..38cdd659a286 100644
> --- a/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h
> +++ b/drivers/gpu/drm/scheduler/gpu_scheduler_trace.h
> @@ -43,6 +43,7 @@ DECLARE_EVENT_CLASS(drm_sched_job,
>  			     __string(dev, dev_name(sched_job-
> >sched->dev))
>  			     __field(u64, fence_context)
>  			     __field(u64, fence_seqno)
> +			     __field(u64, client_id)
>  			     ),
>  
>  	    TP_fast_assign(
> @@ -54,11 +55,12 @@ DECLARE_EVENT_CLASS(drm_sched_job,
>  			   __assign_str(dev);
>  			   __entry->fence_context = sched_job-
> >s_fence->finished.context;
>  			   __entry->fence_seqno = sched_job-
> >s_fence->finished.seqno;
> +			   __entry->client_id = sched_job->s_fence-
> >drm_client_id;
>  			   ),
> -	    TP_printk("dev=%s, id=%llu, fence=%llu:%llu, ring=%s,
> job count:%u, hw job count:%d",
> +	    TP_printk("dev=%s, id=%llu, fence=%llu:%llu, ring=%s,
> job count:%u, hw job count:%d, client_id:%llu",
>  		      __get_str(dev), __entry->id,
>  		      __entry->fence_context, __entry->fence_seqno,
> __get_str(name),
> -		      __entry->job_count, __entry->hw_job_count)
> +		      __entry->job_count, __entry->hw_job_count,
> __entry->client_id)
>  );
>  
>  DEFINE_EVENT(drm_sched_job, drm_sched_job,