1c08d2f8bSYann Dirson=========================================== 2c08d2f8bSYann Dirson GPU Power/Thermal Controls and Monitoring 3c08d2f8bSYann Dirson=========================================== 4c08d2f8bSYann Dirson 5c08d2f8bSYann DirsonHWMON Interfaces 6c08d2f8bSYann Dirson================ 7c08d2f8bSYann Dirson 8c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 9c08d2f8bSYann Dirson :doc: hwmon 10c08d2f8bSYann Dirson 11c08d2f8bSYann DirsonGPU sysfs Power State Interfaces 12c08d2f8bSYann Dirson================================ 13c08d2f8bSYann Dirson 14c08d2f8bSYann DirsonGPU power controls are exposed via sysfs files. 15c08d2f8bSYann Dirson 16c08d2f8bSYann Dirsonpower_dpm_state 17c08d2f8bSYann Dirson--------------- 18c08d2f8bSYann Dirson 19c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 20c08d2f8bSYann Dirson :doc: power_dpm_state 21c08d2f8bSYann Dirson 22c08d2f8bSYann Dirsonpower_dpm_force_performance_level 23c08d2f8bSYann Dirson--------------------------------- 24c08d2f8bSYann Dirson 25c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 26c08d2f8bSYann Dirson :doc: power_dpm_force_performance_level 27c08d2f8bSYann Dirson 28c08d2f8bSYann Dirsonpp_table 29c08d2f8bSYann Dirson-------- 30c08d2f8bSYann Dirson 31c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 32c08d2f8bSYann Dirson :doc: pp_table 33c08d2f8bSYann Dirson 34c08d2f8bSYann Dirsonpp_od_clk_voltage 35c08d2f8bSYann Dirson----------------- 36c08d2f8bSYann Dirson 37c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 38c08d2f8bSYann Dirson :doc: pp_od_clk_voltage 39c08d2f8bSYann Dirson 40c08d2f8bSYann Dirsonpp_dpm_* 41c08d2f8bSYann Dirson-------- 42c08d2f8bSYann Dirson 43c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 44c08d2f8bSYann Dirson :doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie 45c08d2f8bSYann Dirson 46c08d2f8bSYann Dirsonpp_power_profile_mode 47c08d2f8bSYann Dirson--------------------- 48c08d2f8bSYann Dirson 49c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 50c08d2f8bSYann Dirson :doc: pp_power_profile_mode 51c08d2f8bSYann Dirson 52c08d2f8bSYann Dirson\*_busy_percent 53c08d2f8bSYann Dirson--------------- 54c08d2f8bSYann Dirson 55c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 56c08d2f8bSYann Dirson :doc: gpu_busy_percent 57c08d2f8bSYann Dirson 58c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 59c08d2f8bSYann Dirson :doc: mem_busy_percent 60c08d2f8bSYann Dirson 61c08d2f8bSYann Dirsongpu_metrics 62c08d2f8bSYann Dirson----------- 63c08d2f8bSYann Dirson 64c08d2f8bSYann Dirson.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c 65c08d2f8bSYann Dirson :doc: gpu_metrics 667a06e125SAndré Almeida 677a06e125SAndré AlmeidaGFXOFF 687a06e125SAndré Almeida====== 697a06e125SAndré Almeida 707a06e125SAndré AlmeidaGFXOFF is a feature found in most recent GPUs that saves power at runtime. The 717a06e125SAndré Almeidacard's RLC (RunList Controller) firmware powers off the gfx engine 727a06e125SAndré Almeidadynamically when there is no workload on gfx or compute pipes. GFXOFF is on by 737a06e125SAndré Almeidadefault on supported GPUs. 747a06e125SAndré Almeida 75*e7611596SAndré AlmeidaUserspace can interact with GFXOFF through a debugfs interface (all values in 76*e7611596SAndré Almeida`uint32_t`, unless otherwise noted): 777a06e125SAndré Almeida 787a06e125SAndré Almeida``amdgpu_gfxoff`` 797a06e125SAndré Almeida----------------- 807a06e125SAndré Almeida 817a06e125SAndré AlmeidaUse it to enable/disable GFXOFF, and to check if it's current enabled/disabled:: 827a06e125SAndré Almeida 837a06e125SAndré Almeida $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff 847a06e125SAndré Almeida 01 857a06e125SAndré Almeida 867a06e125SAndré Almeida- Write 0 to disable it, and 1 to enable it. 877a06e125SAndré Almeida- Read 0 means it's disabled, 1 it's enabled. 887a06e125SAndré Almeida 897a06e125SAndré AlmeidaIf it's enabled, that means that the GPU is free to enter into GFXOFF mode as 907a06e125SAndré Almeidaneeded. Disabled means that it will never enter GFXOFF mode. 917a06e125SAndré Almeida 927a06e125SAndré Almeida``amdgpu_gfxoff_status`` 937a06e125SAndré Almeida------------------------ 947a06e125SAndré Almeida 957a06e125SAndré AlmeidaRead it to check current GFXOFF's status of a GPU:: 967a06e125SAndré Almeida 977a06e125SAndré Almeida $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff_status 987a06e125SAndré Almeida 02 997a06e125SAndré Almeida 1007a06e125SAndré Almeida- 0: GPU is in GFXOFF state, the gfx engine is powered down. 1017a06e125SAndré Almeida- 1: Transition out of GFXOFF state 1027a06e125SAndré Almeida- 2: Not in GFXOFF state 1037a06e125SAndré Almeida- 3: Transition into GFXOFF state 1047a06e125SAndré Almeida 1057a06e125SAndré AlmeidaIf GFXOFF is enabled, the value will be transitioning around [0, 3], always 1067a06e125SAndré Almeidagetting into 0 when possible. When it's disabled, it's always at 2. Returns 1077a06e125SAndré Almeida``-EINVAL`` if it's not supported. 108*e7611596SAndré Almeida 109*e7611596SAndré Almeida``amdgpu_gfxoff_count`` 110*e7611596SAndré Almeida----------------------- 111*e7611596SAndré Almeida 112*e7611596SAndré AlmeidaRead it to get the total GFXOFF entry count at the time of query since system 113*e7611596SAndré Almeidapower-up. The value is an `uint64_t` type, however, due to firmware limitations, 114*e7611596SAndré Almeidait can currently overflow as an `uint32_t`. *Only supported in vangogh* 115*e7611596SAndré Almeida 116*e7611596SAndré Almeida``amdgpu_gfxoff_residency`` 117*e7611596SAndré Almeida--------------------------- 118*e7611596SAndré Almeida 119*e7611596SAndré AlmeidaWrite 1 to amdgpu_gfxoff_residency to start logging, and 0 to stop. Read it to 120*e7611596SAndré Almeidaget average GFXOFF residency % multiplied by 100 during the last logging 121*e7611596SAndré Almeidainterval. E.g. a value of 7854 means 78.54% of the time in the last logging 122*e7611596SAndré Almeidainterval the GPU was in GFXOFF mode. *Only supported in vangogh* 123