Lines Matching +full:i +full:- +full:leak +full:- +full:current

1 // SPDX-License-Identifier: GPL-2.0-only
14 * sched_idle_set_state - Record idle state for the current CPU.
29 cpu_idle_force_poll--; in cpu_idle_poll_ctrl()
85 * default_idle_call - Default CPU idle routine.
111 return -EBUSY; in call_cpuidle_s2idle()
124 dev->last_residency_ns = 0; in call_cpuidle()
126 return -EBUSY; in call_cpuidle()
132 * care of re-enabling the local interrupts in call_cpuidle()
138 * cpuidle_idle_call - the main idle function
154 * case, exit the function after re-enabling the local irq. in cpuidle_idle_call()
175 * Suspend-to-idle ("s2idle") is a system state in which all user space in cpuidle_idle_call()
176 * has been frozen, all I/O devices have been suspended and the only in cpuidle_idle_call()
184 if (idle_should_enter_s2idle() || dev->forced_idle_latency_limit_ns) { in cpuidle_idle_call()
195 max_latency_ns = dev->forced_idle_latency_limit_ns; in cpuidle_idle_call()
249 * Our polling bit is clear if we're not scheduled (i.e. if rq->curr != in do_idle()
250 * rq->idle). This means that, if rq->idle has the polling bit set, in do_idle()
262 * Interrupts shouldn't be re-enabled from that point on until in do_idle()
270 * - SLEEP-UNTIL-PENDING-INTERRUPT based instructions such as in do_idle()
274 * - sti;mwait() couple is fine because the interrupts are in do_idle()
275 * re-enabled only upon the execution of mwait, leaving no gap in do_idle()
276 * in-between. in do_idle()
278 * - ROLLBACK based idle handlers with the sleeping instruction in do_idle()
282 * need_resched() check before re-executing the sleeping in do_idle()
283 * instruction. This can leak a pending needed timer reprogram. in do_idle()
285 * appropriate CPU sleeping instruction, then a FAST-FORWARD in do_idle()
336 * RCU relies on this call to be done outside of an RCU read-side in do_idle()
342 if (unlikely(klp_patch_pending(current))) in do_idle()
343 klp_update_patch_state(current); in do_idle()
361 WRITE_ONCE(it->done, 1); in idle_inject_timer_fn()
362 set_tsk_need_resched(current); in idle_inject_timer_fn()
375 WARN_ON_ONCE(current->policy != SCHED_FIFO); in play_idle_precise()
376 WARN_ON_ONCE(current->nr_cpus_allowed != 1); in play_idle_precise()
377 WARN_ON_ONCE(!(current->flags & PF_KTHREAD)); in play_idle_precise()
378 WARN_ON_ONCE(!(current->flags & PF_NO_SETAFFINITY)); in play_idle_precise()
380 WARN_ON_ONCE(current->mm); in play_idle_precise()
384 current->flags |= PF_IDLE; in play_idle_precise()
397 current->flags &= ~PF_IDLE; in play_idle_precise()
406 current->flags |= PF_IDLE; in cpu_startup_entry()
414 * idle-task scheduling class.
446 schedstat_inc(rq->sched_goidle); in set_next_task_idle()
452 return rq->idle; in pick_task_idle()
458 struct task_struct *next = rq->idle; in pick_next_task_idle()
466 * It is not legal to sleep in the idle task - print a warning
506 * Simple, special scheduling class for the per-CPU idle tasks: