drm/amdgpu/UAPI: add new CTX OP to get/set stable pstates
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 7 Jan 2022 22:57:33 +0000 (17:57 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Jan 2022 23:08:20 +0000 (18:08 -0500)
commitf195f7cb93b66352d98c703118843d6049b405b7
treeb20d7ed7ec1015bfdff8d30a7098d5c798fe7c0d
parentfa4156c63a3e9c0cf69789c765ec8d54913a8ab2
drm/amdgpu/UAPI: add new CTX OP to get/set stable pstates

Add a new CTX ioctl operation to set stable pstates for profiling.
When creating traces for tools like RGP or using SPM or doing
performance profiling, it's required to enable a special
stable profiling power state on the GPU.  These profiling
states set fixed clocks and disable certain other power
features like powergating which may impact the results.

Historically, these profiling pstates were enabled via sysfs,
but this adds an interface to enable it via the CTX ioctl
from the application.  Since the power state is global
only one application can set it at a time, so if multiple
applications try and use it only the first will get it,
the ioctl will return -EBUSY for others.  The sysfs interface
will override whatever has been set by this interface.

Mesa MR: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/207

v2: don't default r = 0;
v3: rebase on Evan's PM cleanup

Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/pm/amdgpu_pm.c
drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h
include/uapi/drm/amdgpu_drm.h