diff options
Diffstat (limited to 'Documentation/cpu-freq/governors.txt')
-rw-r--r-- | Documentation/cpu-freq/governors.txt | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/Documentation/cpu-freq/governors.txt b/Documentation/cpu-freq/governors.txt index c7a2eb8450c..51b1cd360c3 100644 --- a/Documentation/cpu-freq/governors.txt +++ b/Documentation/cpu-freq/governors.txt | |||
@@ -28,6 +28,7 @@ Contents: | |||
28 | 2.3 Userspace | 28 | 2.3 Userspace |
29 | 2.4 Ondemand | 29 | 2.4 Ondemand |
30 | 2.5 Conservative | 30 | 2.5 Conservative |
31 | 2.6 Interactive | ||
31 | 32 | ||
32 | 3. The Governor Interface in the CPUfreq Core | 33 | 3. The Governor Interface in the CPUfreq Core |
33 | 34 | ||
@@ -127,12 +128,12 @@ in the bash (as said, 1000 is default), do: | |||
127 | echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) \ | 128 | echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) \ |
128 | >ondemand/sampling_rate | 129 | >ondemand/sampling_rate |
129 | 130 | ||
130 | sampling_rate_min: | 131 | show_sampling_rate_min: |
131 | The sampling rate is limited by the HW transition latency: | 132 | The sampling rate is limited by the HW transition latency: |
132 | transition_latency * 100 | 133 | transition_latency * 100 |
133 | Or by kernel restrictions: | 134 | Or by kernel restrictions: |
134 | If CONFIG_NO_HZ is set, the limit is 10ms fixed. | 135 | If CONFIG_NO_HZ is set, the limit is 10ms fixed. |
135 | If CONFIG_NO_HZ is not set or nohz=off boot parameter is used, the | 136 | If CONFIG_NO_HZ is not set or no_hz=off boot parameter is used, the |
136 | limits depend on the CONFIG_HZ option: | 137 | limits depend on the CONFIG_HZ option: |
137 | HZ=1000: min=20000us (20ms) | 138 | HZ=1000: min=20000us (20ms) |
138 | HZ=250: min=80000us (80ms) | 139 | HZ=250: min=80000us (80ms) |
@@ -140,6 +141,8 @@ HZ=100: min=200000us (200ms) | |||
140 | The highest value of kernel and HW latency restrictions is shown and | 141 | The highest value of kernel and HW latency restrictions is shown and |
141 | used as the minimum sampling rate. | 142 | used as the minimum sampling rate. |
142 | 143 | ||
144 | show_sampling_rate_max: THIS INTERFACE IS DEPRECATED, DON'T USE IT. | ||
145 | |||
143 | up_threshold: defines what the average CPU usage between the samplings | 146 | up_threshold: defines what the average CPU usage between the samplings |
144 | of 'sampling_rate' needs to be for the kernel to make a decision on | 147 | of 'sampling_rate' needs to be for the kernel to make a decision on |
145 | whether it should increase the frequency. For example when it is set | 148 | whether it should increase the frequency. For example when it is set |
@@ -191,6 +194,43 @@ governor but for the opposite direction. For example when set to its | |||
191 | default value of '20' it means that if the CPU usage needs to be below | 194 | default value of '20' it means that if the CPU usage needs to be below |
192 | 20% between samples to have the frequency decreased. | 195 | 20% between samples to have the frequency decreased. |
193 | 196 | ||
197 | |||
198 | 2.6 Interactive | ||
199 | --------------- | ||
200 | |||
201 | The CPUfreq governor "interactive" is designed for latency-sensitive, | ||
202 | interactive workloads. This governor sets the CPU speed depending on | ||
203 | usage, similar to "ondemand" and "conservative" governors. However, | ||
204 | the governor is more aggressive about scaling the CPU speed up in | ||
205 | response to CPU-intensive activity. | ||
206 | |||
207 | Sampling the CPU load every X ms can lead to under-powering the CPU | ||
208 | for X ms, leading to dropped frames, stuttering UI, etc. Instead of | ||
209 | sampling the cpu at a specified rate, the interactive governor will | ||
210 | check whether to scale the cpu frequency up soon after coming out of | ||
211 | idle. When the cpu comes out of idle, a timer is configured to fire | ||
212 | within 1-2 ticks. If the cpu is very busy between exiting idle and | ||
213 | when the timer fires then we assume the cpu is underpowered and ramp | ||
214 | to MAX speed. | ||
215 | |||
216 | If the cpu was not sufficiently busy to immediately ramp to MAX speed, | ||
217 | then governor evaluates the cpu load since the last speed adjustment, | ||
218 | choosing the highest value between that longer-term load or the | ||
219 | short-term load since idle exit to determine the cpu speed to ramp to. | ||
220 | |||
221 | The tuneable values for this governor are: | ||
222 | |||
223 | min_sample_time: The minimum amount of time to spend at the current | ||
224 | frequency before ramping down. This is to ensure that the governor has | ||
225 | seen enough historic cpu load data to determine the appropriate | ||
226 | workload. Default is 80000 uS. | ||
227 | |||
228 | go_maxspeed_load: The CPU load at which to ramp to max speed. Default | ||
229 | is 85. | ||
230 | |||
231 | timer_rate: Sample rate for reevaluating cpu load when the system is | ||
232 | not idle. Default is 30000 uS. | ||
233 | |||
194 | 3. The Governor Interface in the CPUfreq Core | 234 | 3. The Governor Interface in the CPUfreq Core |
195 | ============================================= | 235 | ============================================= |
196 | 236 | ||