Lines Matching full:idle
3 * Timer events oriented CPU idle governor
20 * wakeups from idle states. Moreover, information about what happened in the
22 * idle state with target residency within the (known) time till the closest
24 * the upcoming CPU idle period and, if not, then which of the shallower idle
28 * which can be covered by taking a few most recent idle time intervals of the
30 * consider idle duration values greater than the sleep length, because the
34 * Thus this governor estimates whether or not the prospective idle duration of
36 * an idle state for it accordingly.
40 * idle states provided by the %CPUIdle driver in the ascending order. That is,
42 * the second idle state (idle state 1), the second bin spans from the target
43 * residency of idle state 1 up to, but not including, the target residency of
44 * idle state 2, the third bin spans from the target residency of idle state 2
45 * up to, but not including, the target residency of idle state 3 and so on.
46 * The last bin spans from the target residency of the deepest idle state
50 * They are updated every time before selecting an idle state for the given CPU
54 * sleep length and the idle duration measured after CPU wakeup fall into the
57 * situations in which the measured idle duration is so much shorter than the
58 * sleep length that the bin it falls into corresponds to an idle state
66 * In order to select an idle state for a CPU, the governor takes the following
70 * 1. Find the deepest CPU idle state whose target residency does not exceed
71 * the current sleep length (the candidate idle state) and compute 3 sums as
75 * and all of the deeper idle states (it represents the cases in which the
76 * CPU was idle long enough to avoid being intercepted if the sleep length
79 * - The sum of the "intercepts" metrics for all of the idle states shallower
81 * idle long enough to avoid being intercepted if the sleep length had been
84 * - The sum of the numbers of recent intercepts for all of the idle states
89 * for an alternative idle state to select.
91 * - Traverse the idle states shallower than the candidate one in the
95 * of the numbers of recent intercepts over all of the idle states between
103 * not exceeded the idle duration in over a half of the relevant cases),
104 * select the given idle state instead of the candidate one.
111 * scenarios for the CPU which should result in two different approaches to idle
117 * When the CPU is utilized while going into idle, more likely than not it will
118 * be woken up to do more work soon and so a shallower idle state should be
121 * available idle state should be preferred to take advantage of the power
129 * Before selecting the next idle state, the governor compares the current CPU
131 * TEO metrics mechanism. If it's above, the closest shallower idle state will
165 * Number of the most recent idle duration values to take into consideration for
184 * @time_span_ns: Time between idle state selection and post-wakeup update.
186 * @state_bins: Idle state data bins for this CPU.
238 * enough to the closest timer event expected at the idle state in teo_update()
247 * (saved) time till the next timer event and the measured idle in teo_update()
269 * find the bins that the sleep length and the measured idle duration in teo_update()
317 * If the measured idle duration falls into the same bin as the sleep in teo_update()
320 * the measured idle duration. in teo_update()
342 * teo_find_shallower_state - Find shallower idle state matching given duration.
345 * @state_idx: Index of the capping idle state.
346 * @duration_ns: Idle duration value to match.
368 * teo_select - Selects the next idle state to enter.
446 * Update the sums of idle state mertics for all of the states in teo_select()
478 * Only one idle state is enabled, so use it, but do not in teo_select()
489 * If the sum of the intercepts metric for all of the idle states in teo_select()
495 * account, a shallower idle state is likely to be a better choice. in teo_select()
503 * Look for the deepest idle state whose target residency had in teo_select()
504 * not exceeded the idle duration in over a half of the relevant in teo_select()
558 * idle state shallower than the current candidate one. in teo_select()
616 * one or the expected idle duration is shorter than the tick period in teo_select()
649 * nets, assume that the CPU might have been idle for the entire sleep in teo_reflect()