static void switched_to_idle(struct rq *rq, struct task_struct *p, int running) { /* Can this actually happen?? */ if (running) resched_task(rq->curr); else check_preempt_curr(rq, p, 0); }
/* * We switched to the sched_other_rr class. */ static void switched_to_other_rr(struct rq *rq, struct task_struct *p, int running) { /* * Kick off the schedule if running, otherwise just see * if we can still preempt the current task. */ if (running) resched_task(rq->curr); else check_preempt_curr(rq, p, 0); }
static void prio_changed_idle(struct rq *rq, struct task_struct *p, int oldprio, int running) { /* This can happen for hot plug CPUS */ /* * Reschedule if we are currently running on this runqueue and * our priority decreased, or if we are not currently running on * this runqueue and our priority is higher than the current's */ if (running) { if (p->prio > oldprio) resched_task(rq->curr); } else check_preempt_curr(rq, p, 0); }