162306a36Sopenharmony_ci===========================================
262306a36Sopenharmony_ci GPU Power/Thermal Controls and Monitoring
362306a36Sopenharmony_ci===========================================
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciHWMON Interfaces
662306a36Sopenharmony_ci================
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
962306a36Sopenharmony_ci   :doc: hwmon
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciGPU sysfs Power State Interfaces
1262306a36Sopenharmony_ci================================
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciGPU power controls are exposed via sysfs files.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cipower_dpm_state
1762306a36Sopenharmony_ci---------------
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
2062306a36Sopenharmony_ci   :doc: power_dpm_state
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_cipower_dpm_force_performance_level
2362306a36Sopenharmony_ci---------------------------------
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
2662306a36Sopenharmony_ci   :doc: power_dpm_force_performance_level
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_cipp_table
2962306a36Sopenharmony_ci--------
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
3262306a36Sopenharmony_ci   :doc: pp_table
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cipp_od_clk_voltage
3562306a36Sopenharmony_ci-----------------
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
3862306a36Sopenharmony_ci   :doc: pp_od_clk_voltage
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_cipp_dpm_*
4162306a36Sopenharmony_ci--------
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
4462306a36Sopenharmony_ci   :doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_cipp_power_profile_mode
4762306a36Sopenharmony_ci---------------------
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
5062306a36Sopenharmony_ci   :doc: pp_power_profile_mode
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci\*_busy_percent
5362306a36Sopenharmony_ci---------------
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
5662306a36Sopenharmony_ci   :doc: gpu_busy_percent
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
5962306a36Sopenharmony_ci   :doc: mem_busy_percent
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_cigpu_metrics
6262306a36Sopenharmony_ci-----------
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
6562306a36Sopenharmony_ci   :doc: gpu_metrics
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciGFXOFF
6862306a36Sopenharmony_ci======
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciGFXOFF is a feature found in most recent GPUs that saves power at runtime. The
7162306a36Sopenharmony_cicard's RLC (RunList Controller) firmware powers off the gfx engine
7262306a36Sopenharmony_cidynamically when there is no workload on gfx or compute pipes. GFXOFF is on by
7362306a36Sopenharmony_cidefault on supported GPUs.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciUserspace can interact with GFXOFF through a debugfs interface (all values in
7662306a36Sopenharmony_ci`uint32_t`, unless otherwise noted):
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci``amdgpu_gfxoff``
7962306a36Sopenharmony_ci-----------------
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciUse it to enable/disable GFXOFF, and to check if it's current enabled/disabled::
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci  $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff
8462306a36Sopenharmony_ci  01
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci- Write 0 to disable it, and 1 to enable it.
8762306a36Sopenharmony_ci- Read 0 means it's disabled, 1 it's enabled.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciIf it's enabled, that means that the GPU is free to enter into GFXOFF mode as
9062306a36Sopenharmony_cineeded. Disabled means that it will never enter GFXOFF mode.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci``amdgpu_gfxoff_status``
9362306a36Sopenharmony_ci------------------------
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ciRead it to check current GFXOFF's status of a GPU::
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci  $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff_status
9862306a36Sopenharmony_ci  02
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci- 0: GPU is in GFXOFF state, the gfx engine is powered down.
10162306a36Sopenharmony_ci- 1: Transition out of GFXOFF state
10262306a36Sopenharmony_ci- 2: Not in GFXOFF state
10362306a36Sopenharmony_ci- 3: Transition into GFXOFF state
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciIf GFXOFF is enabled, the value will be transitioning around [0, 3], always
10662306a36Sopenharmony_cigetting into 0 when possible. When it's disabled, it's always at 2. Returns
10762306a36Sopenharmony_ci``-EINVAL`` if it's not supported.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci``amdgpu_gfxoff_count``
11062306a36Sopenharmony_ci-----------------------
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciRead it to get the total GFXOFF entry count at the time of query since system
11362306a36Sopenharmony_cipower-up. The value is an `uint64_t` type, however, due to firmware limitations,
11462306a36Sopenharmony_ciit can currently overflow as an `uint32_t`. *Only supported in vangogh*
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci``amdgpu_gfxoff_residency``
11762306a36Sopenharmony_ci---------------------------
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ciWrite 1 to amdgpu_gfxoff_residency to start logging, and 0 to stop. Read it to
12062306a36Sopenharmony_ciget average GFXOFF residency % multiplied by 100 during the last logging
12162306a36Sopenharmony_ciinterval. E.g. a value of 7854 means 78.54% of the time in the last logging
12262306a36Sopenharmony_ciinterval the GPU was in GFXOFF mode. *Only supported in vangogh*
123