mbox series

[v6,0/7] Improve gpu_scheduler trace events + uAPI

Message ID 20241114100113.150647-1-pierre-eric.pelloux-prayer@amd.com (mailing list archive)
Headers show
Series Improve gpu_scheduler trace events + uAPI | expand

Message

Pierre-Eric Pelloux-Prayer Nov. 14, 2024, 10:01 a.m. UTC
Hi,

The initial goal of this series was to improve the drm and amdgpu
trace events to be able to expose more of the inner workings of
the scheduler and drivers to developers via tools.

Then, the series evolved to become focused only on gpu_scheduler.
The changes around vblank events will be part of a different
series, as well as the amdgpu ones.

Moreover Sima suggested to make some trace events stable uAPI,
so tools can rely on them long term.

The first patches extend and cleanup the gpu scheduler events.

The last one adds a documentation entry in drm-uapi.rst.

Changes since v5:
* Addressed Christian, Maíra and Lucas' comments.
* Added patch 1, 2, 6 to include drm_client_id to the events. This
  is required when a single app uses multiple fds for the same device.
* Validated that the patches don't break gpuvis

Useful links:
- userspace tool using the updated events:
https://gitlab.freedesktop.org/tomstdenis/umr/-/merge_requests/37
- v5:
https://lists.freedesktop.org/archives/dri-devel/2024-June/457827.html


Pierre-Eric Pelloux-Prayer (7):
  drm/debugfs: output client_id in in drm_clients_info
  drm/sched: store the drm client_id in drm_sched_fence
  drm/sched: add device name to the drm_sched_process_job event
  drm/sched: cleanup gpu_scheduler trace events
  drm/sched: trace dependencies for gpu jobs
  drm/sched: add the drm_client_id to the drm_sched_run/exec_job events
  drm/doc: document some tracepoints as uAPI

 Documentation/gpu/drm-uapi.rst                |  19 +++
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c        |   3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c       |   8 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.h       |   3 +-
 drivers/gpu/drm/drm_debugfs.c                 |  10 +-
 drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c  |   2 +-
 drivers/gpu/drm/imagination/pvr_job.c         |   2 +-
 drivers/gpu/drm/imagination/pvr_queue.c       |   5 +-
 drivers/gpu/drm/imagination/pvr_queue.h       |   2 +-
 drivers/gpu/drm/lima/lima_gem.c               |   2 +-
 drivers/gpu/drm/lima/lima_sched.c             |   6 +-
 drivers/gpu/drm/lima/lima_sched.h             |   3 +-
 drivers/gpu/drm/msm/msm_gem_submit.c          |   8 +-
 drivers/gpu/drm/nouveau/nouveau_sched.c       |   3 +-
 drivers/gpu/drm/panfrost/panfrost_drv.c       |   2 +-
 .../gpu/drm/scheduler/gpu_scheduler_trace.h   | 121 ++++++++++++++----
 drivers/gpu/drm/scheduler/sched_entity.c      |   8 +-
 drivers/gpu/drm/scheduler/sched_fence.c       |   4 +-
 drivers/gpu/drm/scheduler/sched_main.c        |   8 +-
 drivers/gpu/drm/v3d/v3d_submit.c              |   2 +-
 drivers/gpu/drm/xe/xe_sched_job.c             |   3 +-
 include/drm/gpu_scheduler.h                   |  12 +-
 23 files changed, 181 insertions(+), 57 deletions(-)

Comments

Philipp Stanner Nov. 15, 2024, 10:46 a.m. UTC | #1
On Thu, 2024-11-14 at 11:01 +0100, Pierre-Eric Pelloux-Prayer wrote:
> Hi,
> 

Hi,

I have only just discovered this thread; Danilo and I (we're
maintainers of the scheduler since early October) seem to miss on CC.
Do you use scripts/get_maintainer?

I'll look into this series soonish.

Regards,
P.

> The initial goal of this series was to improve the drm and amdgpu
> trace events to be able to expose more of the inner workings of
> the scheduler and drivers to developers via tools.
> 
> Then, the series evolved to become focused only on gpu_scheduler.
> The changes around vblank events will be part of a different
> series, as well as the amdgpu ones.
> 
> Moreover Sima suggested to make some trace events stable uAPI,
> so tools can rely on them long term.
> 
> The first patches extend and cleanup the gpu scheduler events.
> 
> The last one adds a documentation entry in drm-uapi.rst.
> 
> Changes since v5:
> * Addressed Christian, Maíra and Lucas' comments.
> * Added patch 1, 2, 6 to include drm_client_id to the events. This
>   is required when a single app uses multiple fds for the same
> device.
> * Validated that the patches don't break gpuvis
> 
> Useful links:
> - userspace tool using the updated events:
> https://gitlab.freedesktop.org/tomstdenis/umr/-/merge_requests/37
> - v5:
> https://lists.freedesktop.org/archives/dri-devel/2024-June/457827.html
> 
> 
> Pierre-Eric Pelloux-Prayer (7):
>   drm/debugfs: output client_id in in drm_clients_info
>   drm/sched: store the drm client_id in drm_sched_fence
>   drm/sched: add device name to the drm_sched_process_job event
>   drm/sched: cleanup gpu_scheduler trace events
>   drm/sched: trace dependencies for gpu jobs
>   drm/sched: add the drm_client_id to the drm_sched_run/exec_job
> events
>   drm/doc: document some tracepoints as uAPI
> 
>  Documentation/gpu/drm-uapi.rst                |  19 +++
>  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |   2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c        |   3 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_job.c       |   8 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_job.h       |   3 +-
>  drivers/gpu/drm/drm_debugfs.c                 |  10 +-
>  drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c  |   2 +-
>  drivers/gpu/drm/imagination/pvr_job.c         |   2 +-
>  drivers/gpu/drm/imagination/pvr_queue.c       |   5 +-
>  drivers/gpu/drm/imagination/pvr_queue.h       |   2 +-
>  drivers/gpu/drm/lima/lima_gem.c               |   2 +-
>  drivers/gpu/drm/lima/lima_sched.c             |   6 +-
>  drivers/gpu/drm/lima/lima_sched.h             |   3 +-
>  drivers/gpu/drm/msm/msm_gem_submit.c          |   8 +-
>  drivers/gpu/drm/nouveau/nouveau_sched.c       |   3 +-
>  drivers/gpu/drm/panfrost/panfrost_drv.c       |   2 +-
>  .../gpu/drm/scheduler/gpu_scheduler_trace.h   | 121 ++++++++++++++--
> --
>  drivers/gpu/drm/scheduler/sched_entity.c      |   8 +-
>  drivers/gpu/drm/scheduler/sched_fence.c       |   4 +-
>  drivers/gpu/drm/scheduler/sched_main.c        |   8 +-
>  drivers/gpu/drm/v3d/v3d_submit.c              |   2 +-
>  drivers/gpu/drm/xe/xe_sched_job.c             |   3 +-
>  include/drm/gpu_scheduler.h                   |  12 +-
>  23 files changed, 181 insertions(+), 57 deletions(-)
>
Pierre-Eric Pelloux-Prayer Nov. 21, 2024, 3:33 p.m. UTC | #2
Le 15/11/2024 à 11:46, Philipp Stanner a écrit :
> On Thu, 2024-11-14 at 11:01 +0100, Pierre-Eric Pelloux-Prayer wrote:
>> Hi,
>>
> 
> Hi,
> 
> I have only just discovered this thread; Danilo and I (we're
> maintainers of the scheduler since early October) seem to miss on CC.
> Do you use scripts/get_maintainer?

I've used the get_maintainer script initially, but then I've kept sending to the same list and I've 
missed the early October update. Sorry about that.

> 
> I'll look into this series soonish.

Thanks a lot!

Pierre-Eric

> 
> Regards,
> P.
> 
>> The initial goal of this series was to improve the drm and amdgpu
>> trace events to be able to expose more of the inner workings of
>> the scheduler and drivers to developers via tools.
>>
>> Then, the series evolved to become focused only on gpu_scheduler.
>> The changes around vblank events will be part of a different
>> series, as well as the amdgpu ones.
>>
>> Moreover Sima suggested to make some trace events stable uAPI,
>> so tools can rely on them long term.
>>
>> The first patches extend and cleanup the gpu scheduler events.
>>
>> The last one adds a documentation entry in drm-uapi.rst.
>>
>> Changes since v5:
>> * Addressed Christian, Maíra and Lucas' comments.
>> * Added patch 1, 2, 6 to include drm_client_id to the events. This
>>    is required when a single app uses multiple fds for the same
>> device.
>> * Validated that the patches don't break gpuvis
>>
>> Useful links:
>> - userspace tool using the updated events:
>> https://gitlab.freedesktop.org/tomstdenis/umr/-/merge_requests/37
>> - v5:
>> https://lists.freedesktop.org/archives/dri-devel/2024-June/457827.html
>>
>>
>> Pierre-Eric Pelloux-Prayer (7):
>>    drm/debugfs: output client_id in in drm_clients_info
>>    drm/sched: store the drm client_id in drm_sched_fence
>>    drm/sched: add device name to the drm_sched_process_job event
>>    drm/sched: cleanup gpu_scheduler trace events
>>    drm/sched: trace dependencies for gpu jobs
>>    drm/sched: add the drm_client_id to the drm_sched_run/exec_job
>> events
>>    drm/doc: document some tracepoints as uAPI
>>
>>   Documentation/gpu/drm-uapi.rst                |  19 +++
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |   2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c        |   3 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_job.c       |   8 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_job.h       |   3 +-
>>   drivers/gpu/drm/drm_debugfs.c                 |  10 +-
>>   drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c  |   2 +-
>>   drivers/gpu/drm/imagination/pvr_job.c         |   2 +-
>>   drivers/gpu/drm/imagination/pvr_queue.c       |   5 +-
>>   drivers/gpu/drm/imagination/pvr_queue.h       |   2 +-
>>   drivers/gpu/drm/lima/lima_gem.c               |   2 +-
>>   drivers/gpu/drm/lima/lima_sched.c             |   6 +-
>>   drivers/gpu/drm/lima/lima_sched.h             |   3 +-
>>   drivers/gpu/drm/msm/msm_gem_submit.c          |   8 +-
>>   drivers/gpu/drm/nouveau/nouveau_sched.c       |   3 +-
>>   drivers/gpu/drm/panfrost/panfrost_drv.c       |   2 +-
>>   .../gpu/drm/scheduler/gpu_scheduler_trace.h   | 121 ++++++++++++++--
>> --
>>   drivers/gpu/drm/scheduler/sched_entity.c      |   8 +-
>>   drivers/gpu/drm/scheduler/sched_fence.c       |   4 +-
>>   drivers/gpu/drm/scheduler/sched_main.c        |   8 +-
>>   drivers/gpu/drm/v3d/v3d_submit.c              |   2 +-
>>   drivers/gpu/drm/xe/xe_sched_job.c             |   3 +-
>>   include/drm/gpu_scheduler.h                   |  12 +-
>>   23 files changed, 181 insertions(+), 57 deletions(-)
>>