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