1 .. SPDX-License-Identifier: GPL-2.0 2 3 ================ 4 CPU Idle Cooling 5 ================ 6 7 Situation: 8 ---------- 9 10 Under certain circumstances a SoC can reach a 11 limit and is unable to stabilize the temperatu 12 control. When the SoC has to stabilize the tem 13 act on a cooling device to mitigate the dissip 14 critical temperature is reached, a decision mu 15 the temperature, that, in turn impacts perform 16 17 Another situation is when the silicon temperat 18 increase even after the dynamic leakage is red 19 clock gating the component. This runaway pheno 20 to the static leakage. The only solution is to 21 component, thus dropping the dynamic and stati 22 allow the component to cool down. 23 24 Last but not least, the system can ask for a s 25 because of the OPP density, we can only choose 26 budget lower than the requested one and under- 27 losing performance. In other words, one OPP un 28 with a power less than the requested power bud 29 exceeds the power budget. An intermediate OPP 30 it were present. 31 32 Solutions: 33 ---------- 34 35 If we can remove the static and the dynamic le 36 duration in a controlled period, the SoC tempe 37 decrease. Acting on the idle state duration or 38 injection period, we can mitigate the temperat 39 power budget. 40 41 The Operating Performance Point (OPP) density 42 the control precision of cpufreq, however diff 43 plethora of OPP density, and some have large p 44 that will result in loss of performance during 45 loss of power in other scenarios. 46 47 At a specific OPP, we can assume that injectin 48 belong to the same cluster, with a duration gr 49 idle state target residency, we lead to droppi 50 dynamic leakage for this period (modulo the en 51 this state). So the sustainable power with idl 52 relation with the OPP’s sustainable power an 53 coefficient similar to:: 54 55 Power(IdleCycle) = Coef x Power(OP 56 57 Idle Injection: 58 --------------- 59 60 The base concept of the idle injection is to f 61 idle state for a specified time each control c 62 another way to control CPU power and heat in a 63 cpufreq. Ideally, if all CPUs belonging to the 64 their idle cycles synchronously, the cluster c 65 state with a minimum power consumption and red 66 to almost zero. However, these idle cycles in 67 latencies as the CPUs will have to wakeup from 68 69 We use a fixed duration of idle injection that 70 performance penalty and a fixed latency. Mitig 71 or decreased by modulating the duty cycle of t 72 73 :: 74 75 ^ 76 | 77 | 78 |------- ------- 79 |_______|_______________________|_______| 80 81 <------> 82 idle <----------------------> 83 running 84 85 <-----------------------------> 86 duty cycle 25% 87 88 89 The implementation of the cooling device bases 90 the duty cycle percentage. When no mitigation 91 device state is zero, meaning the duty cycle i 92 93 When the mitigation begins, depending on the g 94 starting state is selected. With a fixed idle 95 cycle (aka the cooling device state), the runn 96 computed. 97 98 The governor will change the cooling device st 99 and this variation will modulate the cooling e 100 101 :: 102 103 ^ 104 | 105 | 106 |------- ------- 107 |_______|_______________|_______|________ 108 109 <------> 110 idle <--------------> 111 running 112 113 <---------------------> 114 duty cycle 33% 115 116 117 ^ 118 | 119 | 120 |------- ------- 121 |_______|_______|_______|___________ 122 123 <------> 124 idle <------> 125 running 126 127 <-------------> 128 duty cycle 50% 129 130 The idle injection duration value must comply 131 132 - It is less than or equal to the latency we t 133 mitigation begins. It is platform dependent 134 user experience, reactivity vs performance t 135 value should be specified. 136 137 - It is greater than the idle state’s target 138 for thermal mitigation, otherwise we end up 139 140 Power considerations 141 -------------------- 142 143 When we reach the thermal trip point, we have 144 power for a specific temperature but at this t 145 146 Power = Capacitance x Voltage^2 x Frequency x 147 148 ... which is more than the sustainable power ( 149 wrong in the system setup). The ‘Capacitance 150 fixed value, ‘Voltage’ and the ‘Frequenc 151 because we don’t want to change the OPP. We 152 ‘Capacitance’ and the ‘Utilisation’ in 153 ‘Dynamic Power Coefficient (Cdyn)’ Simplif 154 155 Pdyn = Cdyn x Voltage^2 x Frequency 156 157 The power allocator governor will ask us someh 158 in order to target the sustainable power defin 159 tree. So with the idle injection mechanism, we 160 (Ptarget) resulting in an amount of time runni 161 specific OPP and idle another amount of time. 162 equation:: 163 164 P(opp)target = ((Trunning x (P(opp)running) + 165 (Trunning + Tidle) 166 167 ... 168 169 Tidle = Trunning x ((P(opp)running / P(opp)ta 170 171 At this point if we know the running period fo 172 the idle injection we need. Alternatively if w 173 injection duration, we can compute the running 174 175 Trunning = Tidle / ((P(opp)running / P(opp)ta 176 177 Practically, if the running power is less than 178 end up with a negative time value, so obviousl 179 bound to a power reduction, hence a higher OPP 180 running power greater than the targeted power. 181 182 However, in this demonstration we ignore three 183 184 * The static leakage is not defined here, we 185 equation but assuming it will be zero most 186 difficult to get the values from the SoC ve 187 188 * The idle state wake up latency (or entry + 189 taken into account, it must be added in the 190 rigorously compute the idle injection 191 192 * The injected idle duration must be greater 193 target residency, otherwise we end up consu 194 potentially invert the mitigation effect 195 196 So the final equation is:: 197 198 Trunning = (Tidle - Twakeup ) x 199 (((P(opp)dyn + P(opp)static )
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.