The standard says a SCHED_FIFO task only gives up the processor if it blocks, yields, or changes its priority. The counter is not really used by SCHED_FIFO tasks, however the update_process_times() code will set the "need_resched" flag on a SCHED_FIFO task, even though schedule() effectively ignores the entry. The attached patch addresses these issues by setting the counter to -100 for SCHED_FIFO tasks and "teaching" update_process_timers() to not count down negative counters. This avoids the calling of schedule() every jiffie while a SCHED_FIFO task is running. I tried to keep the change to recalculate confined to only the data elements it was already touching, however, the standard really doesn't allow recalculate to touch the SCHED_RR counter. A standard conforming test would restrict recalculate to only SCHED_OTHER tasks. Comments? George