This series adds support for Peak Tops Limiter (PTL) on AMD GFX 9.4.4
GPUs. PTL is a hardware feature that limits peak
computational throughput to stay within power and thermal constraints.
v1->v2:
- Rework patch set based on review feedback (Alex)
- Consolidate PTL structure and interface definitions
- Drop patches that have been merged into earlier patches
- Add explicit PSP response status check in psp_ptl_invoke()
- Add GFX idle wait before PTL state transition to prevent CP hang
- Unify refcount logic for PTL disable/enable
- Rework profiler IOCTL interface based on review feedback (James)
Benjamin Welton (1):
Add kfd_ioctl_profiler to contain profiler kernel driver changes
Perry Yuan (12):
drm/amdgpu: add new performance monitor PSP interfaces
drm/amdgpu: add psp interfaces for peak tops limiter driver
drm/amdgpu: add PTL enable/query gfx control support for GC 9.4.4
drm/amdkfd: add kgd control interface for ptl
Documentation/amdgpu: Add documentation for Peak Tops Limiter (PTL)
sysfs interface
drm/amdgpu: add sysfs for Peak Tops Limiter (PTL)
drm/amdkfd: Add PTL control IOCTL Option and unify refcount logic
drm/amdkfd: suspend scheduler during PTL re-enabling
drm/amdgpu: Track PTL disable requests by source
drm/amdgpu: add amdgpu.ptl module parameter for PTL control
drm/amdgpu: add new data types F8 and Vector for PTL
drm/amdgpu: Wait for GFX idle before PTL state transition
Documentation/gpu/amdgpu/index.rst | 1 +
Documentation/gpu/amdgpu/ptl.rst | 94 +++++
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 +
.../drm/amd/amdgpu/amdgpu_amdkfd_gc_9_4_3.c | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 13 +
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 349 ++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 27 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 62 ++++
drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 17 +
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 219 +++++++++++
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 4 +
.../drm/amd/amdkfd/kfd_device_queue_manager.c | 25 ++
.../drm/amd/amdkfd/kfd_device_queue_manager.h | 2 +
.../gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c | 16 +-
.../gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c | 14 +-
.../gpu/drm/amd/amdkfd/kfd_mqd_manager_v12.c | 8 +-
.../gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c | 15 +-
.../gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c | 11 +
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 16 +
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 15 +
drivers/gpu/drm/amd/include/amdgpu_ptl.h | 61 +++
.../gpu/drm/amd/include/kgd_kfd_interface.h | 6 +
include/uapi/linux/kfd_ioctl.h | 36 ++
25 files changed, 1020 insertions(+), 10 deletions(-)
create mode 100644 Documentation/gpu/amdgpu/ptl.rst
create mode 100644 drivers/gpu/drm/amd/include/amdgpu_ptl.h
--
2.34.1