Lines Matching +full:1 +full:- +full:based
6 - Arjan van de Ven <arjan@linux.intel.com>
7 - Jacob Pan <jacob.jun.pan@linux.intel.com>
12 - Goals and Objectives
15 - Idle Injection
16 - Calibration
19 - Effectiveness and Limitations
20 - Power vs Performance
21 - Scalability
22 - Calibration
23 - Comparison with Alternative Techniques
26 - Generic Thermal Layer (sysfs)
27 - Kernel APIs (TBD)
38 Currently, P-states, T-states (clock modulation), and CPU offlining
41 On Intel CPUs, C-states provide effective power reduction, but so far
42 they’re only used opportunistically, based on workload. With the
45 is to achieve forced and controllable C-state residency.
56 --------------
58 On modern Intel processors (Nehalem or later), package level C-state
69 closed-loop control system can be established that manages package
70 level C-state. The intel_powerclamp driver is conceived as such a
71 control system, where the target set point is a user-selected idle
72 ratio (based on power reduction), and the error is the difference
73 between the actual package level C-state residency ratio and the target idle
80 clamping actions of controlled duty ratio and duration. Each per-CPU
81 thread synchronizes its idle time and duration, based on the rounding
88 scheme to work for both preemptable and non-preemptable kernels.
110 kidle_inject/1 | sleep | mwait | sleep |
121 hot-plug.
124 time is considered largely as a non-causal system where its behavior
125 cannot be based on the past or current input. Therefore, the
134 PID-based thermal controller can use the powerclamp driver to
135 maintain a desired target temperature, based on integral and
141 -----------
144 also true for the ability of a system to enter package level C-states.
172 1 1 0 0
173 2 1 1 0
174 3 3 1 0
175 4 3 1 0
176 5 3 1 0
177 6 3 1 0
178 7 3 1 0
179 8 3 1 0
183 32 3 1 0
185 34 3 1 0
187 36 3 1 0
189 38 3 1 0
192 41 3 1 0
194 43 3 1 0
195 44 3 1 0
205 is accumulated based on clean data collected at runtime. Data
214 non-intrusive to the scheduler or the IRQ core code.
218 ------------------
219 Per-CPU kernel threads are started/stopped upon receiving
231 -----------------------------
235 effectiveness. The extreme case would be doing a ping -f to generated
245 thus not able to enter package C- states at the expected ratio. But
251 -----------
275 cur_state will stop idle injection. Writing a value between 1 and
280 cur_state returns value -1 instead of 0 which is to avoid confusing
284 - To inject 25% idle time::
286 $ sudo sh -c "echo 25 > /sys/class/thermal/cooling_device80/cur_state
301 Tasks: 197 total, 1 running, 196 sleeping, 0 stopped, 0 zombie
308 3341 root -51 0 0 0 0 D 25 0.0 0:01.62 kidle_inject/0
309 3344 root -51 0 0 0 0 D 25 0.0 0:01.60 kidle_inject/3
310 3342 root -51 0 0 0 0 D 25 0.0 0:01.61 kidle_inject/1
311 3343 root -51 0 0 0 0 D 25 0.0 0:01.60 kidle_inject/2
317 device, a PID based userspace thermal controller can manage to