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