~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/thermal/cpu-idle-cooling.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/driver-api/thermal/cpu-idle-cooling.rst (Version linux-6.12-rc7) and /Documentation/driver-api/thermal/cpu-idle-cooling.rst (Version linux-2.6.32.71)


  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 )     
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php