xref: /linux/Documentation/gpu/amdgpu/thermal.rst (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1===========================================
2 GPU Power/Thermal Controls and Monitoring
3===========================================
4
5HWMON Interfaces
6================
7
8.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
9   :doc: hwmon
10
11GPU sysfs Power State Interfaces
12================================
13
14GPU power controls are exposed via sysfs files.
15
16power_dpm_state
17---------------
18
19.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
20   :doc: power_dpm_state
21
22power_dpm_force_performance_level
23---------------------------------
24
25.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
26   :doc: power_dpm_force_performance_level
27
28pp_table
29--------
30
31.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
32   :doc: pp_table
33
34pp_od_clk_voltage
35-----------------
36
37.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
38   :doc: pp_od_clk_voltage
39
40pp_dpm_*
41--------
42
43.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
44   :doc: pp_dpm_sclk pp_dpm_mclk pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie
45
46pp_power_profile_mode
47---------------------
48
49.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
50   :doc: pp_power_profile_mode
51
52pm_policy
53---------------------
54
55.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
56   :doc: pm_policy
57
58\*_busy_percent
59---------------
60
61.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
62   :doc: gpu_busy_percent
63
64.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
65   :doc: mem_busy_percent
66
67gpu_metrics
68-----------
69
70.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
71   :doc: gpu_metrics
72
73fan_curve
74---------
75
76.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
77   :doc: fan_curve
78
79acoustic_limit_rpm_threshold
80----------------------------
81
82.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
83   :doc: acoustic_limit_rpm_threshold
84
85acoustic_target_rpm_threshold
86-----------------------------
87
88.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
89   :doc: acoustic_target_rpm_threshold
90
91fan_target_temperature
92----------------------
93
94.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
95   :doc: fan_target_temperature
96
97fan_minimum_pwm
98---------------
99
100.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
101   :doc: fan_minimum_pwm
102
103fan_zero_rpm_enable
104----------------------
105
106.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
107   :doc: fan_zero_rpm_enable
108
109fan_zero_rpm_stop_temperature
110-----------------------------
111
112.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
113   :doc: fan_zero_rpm_stop_temperature
114
115GFXOFF
116======
117
118GFXOFF is a feature found in most recent GPUs that saves power at runtime. The
119card's RLC (RunList Controller) firmware powers off the gfx engine
120dynamically when there is no workload on gfx or compute pipes. GFXOFF is on by
121default on supported GPUs.
122
123Userspace can interact with GFXOFF through a debugfs interface (all values in
124`uint32_t`, unless otherwise noted):
125
126``amdgpu_gfxoff``
127-----------------
128
129Use it to enable/disable GFXOFF, and to check if it's current enabled/disabled::
130
131  $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff
132  01
133
134- Write 0 to disable it, and 1 to enable it.
135- Read 0 means it's disabled, 1 it's enabled.
136
137If it's enabled, that means that the GPU is free to enter into GFXOFF mode as
138needed. Disabled means that it will never enter GFXOFF mode.
139
140``amdgpu_gfxoff_status``
141------------------------
142
143Read it to check current GFXOFF's status of a GPU::
144
145  $ xxd -l1 -p /sys/kernel/debug/dri/0/amdgpu_gfxoff_status
146  02
147
148- 0: GPU is in GFXOFF state, the gfx engine is powered down.
149- 1: Transition out of GFXOFF state
150- 2: Not in GFXOFF state
151- 3: Transition into GFXOFF state
152
153If GFXOFF is enabled, the value will be transitioning around [0, 3], always
154getting into 0 when possible. When it's disabled, it's always at 2. Returns
155``-EINVAL`` if it's not supported.
156
157``amdgpu_gfxoff_count``
158-----------------------
159
160Read it to get the total GFXOFF entry count at the time of query since system
161power-up. The value is an `uint64_t` type, however, due to firmware limitations,
162it can currently overflow as an `uint32_t`. *Only supported in vangogh*
163
164``amdgpu_gfxoff_residency``
165---------------------------
166
167Write 1 to amdgpu_gfxoff_residency to start logging, and 0 to stop. Read it to
168get average GFXOFF residency % multiplied by 100 during the last logging
169interval. E.g. a value of 7854 means 78.54% of the time in the last logging
170interval the GPU was in GFXOFF mode. *Only supported in vangogh*
171