Add a GFXOFF section at "GPU Power Controls" file, explaining what it is
and how userspace can interact with it.
Signed-off-by: André Almeida <[email protected]>
---
Changes from v1: file created
Documentation/gpu/amdgpu/thermal.rst | 41 ++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/Documentation/gpu/amdgpu/thermal.rst b/Documentation/gpu/amdgpu/thermal.rst
index 8aeb0186c9ef..14c0fb874cf6 100644
--- a/Documentation/gpu/amdgpu/thermal.rst
+++ b/Documentation/gpu/amdgpu/thermal.rst
@@ -63,3 +63,44 @@ gpu_metrics
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: gpu_metrics
+
+GFXOFF
+======
+
+GFXOFF is a feature found in some mobile GPUs that saves power consumption. The
+card's firmware uses RLC (RunList Controller) to power off the gfx engine
+dynamically when there is no workload on gfx pipe and puts gfx into "idle"
+state. GFXOFF is on by default on supported GPUs.
+
+Userspace can interact with GFXOFF through a debugfs interface:
+
+``amdgpu_gfxoff``
+-----------------
+
+Use it to enable/disable GFXOFF, and to check if it's current enabled/disabled::
+
+ $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff
+ 01
+
+- Write 0 to disable it, and 1 to enable it.
+- Read 0 means it's disabled, 1 it's enabled.
+
+If it's enabled, that means that the GPU is free to enter into GFXOFF mode as
+needed. Disabled means that it will never enter GFXOFF mode.
+
+``amdgpu_gfxoff_status``
+------------------------
+
+Read it to check current GFXOFF's status of a GPU::
+
+ $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff_status
+ 02
+
+- 0: GPU is in GFXOFF state, the gfx engine is powered down.
+- 1: Transition out of GFXOFF state
+- 2: Not in GFXOFF state
+- 3: Transition into GFXOFF state
+
+If GFXOFF is enabled, the value will be transitioning around [0, 3], always
+getting into 0 when possible. When it's disabled, it's always at 2. Returns
+``-EINVAL`` if it's not supported.
--
2.37.0
Applied the series with some minor tweaks to the documentation.
Thanks!
Alex
On Thu, Jul 14, 2022 at 3:18 PM André Almeida <[email protected]> wrote:
>
> Add a GFXOFF section at "GPU Power Controls" file, explaining what it is
> and how userspace can interact with it.
>
> Signed-off-by: André Almeida <[email protected]>
> ---
> Changes from v1: file created
>
> Documentation/gpu/amdgpu/thermal.rst | 41 ++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
>
> diff --git a/Documentation/gpu/amdgpu/thermal.rst b/Documentation/gpu/amdgpu/thermal.rst
> index 8aeb0186c9ef..14c0fb874cf6 100644
> --- a/Documentation/gpu/amdgpu/thermal.rst
> +++ b/Documentation/gpu/amdgpu/thermal.rst
> @@ -63,3 +63,44 @@ gpu_metrics
>
> .. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
> :doc: gpu_metrics
> +
> +GFXOFF
> +======
> +
> +GFXOFF is a feature found in some mobile GPUs that saves power consumption. The
> +card's firmware uses RLC (RunList Controller) to power off the gfx engine
> +dynamically when there is no workload on gfx pipe and puts gfx into "idle"
> +state. GFXOFF is on by default on supported GPUs.
> +
> +Userspace can interact with GFXOFF through a debugfs interface:
> +
> +``amdgpu_gfxoff``
> +-----------------
> +
> +Use it to enable/disable GFXOFF, and to check if it's current enabled/disabled::
> +
> + $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff
> + 01
> +
> +- Write 0 to disable it, and 1 to enable it.
> +- Read 0 means it's disabled, 1 it's enabled.
> +
> +If it's enabled, that means that the GPU is free to enter into GFXOFF mode as
> +needed. Disabled means that it will never enter GFXOFF mode.
> +
> +``amdgpu_gfxoff_status``
> +------------------------
> +
> +Read it to check current GFXOFF's status of a GPU::
> +
> + $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff_status
> + 02
> +
> +- 0: GPU is in GFXOFF state, the gfx engine is powered down.
> +- 1: Transition out of GFXOFF state
> +- 2: Not in GFXOFF state
> +- 3: Transition into GFXOFF state
> +
> +If GFXOFF is enabled, the value will be transitioning around [0, 3], always
> +getting into 0 when possible. When it's disabled, it's always at 2. Returns
> +``-EINVAL`` if it's not supported.
> --
> 2.37.0
>