} /* * Tasks that run out of time_slice but still have slice left get * requeued with a lower priority && RR_INTERVAL time_slice. */ if (!--p->time_slice) { time_slice_expired(p, rq); } rq->cache_ticks++; if (rq->preempted && rq->cache_ticks >= CACHE_DELAY) set_tsk_need_resched(p); out_unlock: spin_unlock(&rq->lock); }