• Home
  • Raw
  • Download

Lines Matching +full:idle +full:- +full:state

1 .. SPDX-License-Identifier: GPL-2.0
4 CPU Idle Cooling
8 ----------
26 budget lower than the requested one and under-utilize the CPU, thus
27 losing performance. In other words, one OPP under-utilizes the CPU
33 ----------
37 decrease. Acting on the idle state duration or the idle cycle
47 At a specific OPP, we can assume that injecting idle cycle on all CPUs
49 idle state target residency, we lead to dropping the static and the
51 this state). So the sustainable power with idle cycles has a linear
57 Idle Injection:
58 ---------------
60 The base concept of the idle injection is to force the CPU to go to an
61 idle state for a specified time each control cycle, it provides
64 their idle cycles synchronously, the cluster can reach its power down
65 state with a minimum power consumption and reduce the static leakage
66 to almost zero. However, these idle cycles injection will add extra
67 latencies as the CPUs will have to wakeup from a deep sleep state.
69 We use a fixed duration of idle injection that gives an acceptable
71 or decreased by modulating the duty cycle of the idle injection.
78 |------- -------
81 <------>
82 idle <---------------------->
85 <----------------------------->
91 device state is zero, meaning the duty cycle is 0%.
94 starting state is selected. With a fixed idle duration and the duty
95 cycle (aka the cooling device state), the running duration can be
98 The governor will change the cooling device state thus the duty cycle
106 |------- -------
109 <------>
110 idle <-------------->
113 <--------------------->
120 |------- -------
123 <------>
124 idle <------>
127 <------------->
130 The idle injection duration value must comply with the constraints:
132 - It is less than or equal to the latency we tolerate when the
137 - It is greater than the idle state’s target residency we want to go
141 --------------------
159 tree. So with the idle injection mechanism, we want an average power
161 specific OPP and idle another amount of time. That could be put in a
164 P(opp)target = ((Trunning x (P(opp)running) + (Tidle x P(opp)idle)) /
169 Tidle = Trunning x ((P(opp)running / P(opp)target) - 1)
172 the idle injection we need. Alternatively if we have the idle
175 Trunning = Tidle / ((P(opp)running / P(opp)target) - 1)
188 * The idle state wake up latency (or entry + exit latency) is not
190 rigorously compute the idle injection
192 * The injected idle duration must be greater than the idle state
198 Trunning = (Tidle - Twakeup ) x
199 (((P(opp)dyn + P(opp)static ) - P(opp)target) / P(opp)target )