Funkcja ta w wersji SMP próbuje przydzielić dopiero co wywłaszczonemu procesowi jaki¶ inny procesor (uruchamiaj±c funkcję rechedule_idle()) o ile wywłaszczony proces nie był procesem typu idle i o ile dalej jest w stanie TASK_RUNNING oraz nie ma ustawionej flagi SCHED_YIELD.
if (prev->state == TASK_RUNNING) {
if ((prev == idle_task(smp_processor_id())) ||
(policy & SCHED_YIELD))
goto out_unlock; /* Koniec
spin_lock_irqsave(&runqueue_lock, flags);
if ((prev->state == TASK_RUNNING) && !prev->has_cpu)
reschedule_idle(prev);
spin_unlock_irqrestore(&runqueue_lock, flags);
...
}