The 2.4.18 kernel was behaving incorrectly for SCHED_FIFO and SCHED_RR
scheduling.
The correct behaviour for SCHED_FIFO is priority preemption:
run to completion, or system call, or preemption by higher priority
process. The correct behaviour for SCHED_RR is the same as SCHED_FIFO for
the preemption case, or run for a time slice, and go to the back of the
run queue for that priority.
More details can be found at:
http://www.opengroup.org/onlinepubs/7908799/xsh/realtime.html
As a side note, SCHED_RR is completely broken in the 2.2 series kernels.
This is a small patch, but fixes the behaviour for SCHED_FIFO and SCHED_RR
scheduling in the 2.4.18 kernel. It also improves the efficiency of the
kernel by NOT calling schedule() for every tick for a SCHED_FIFO process.
-- Bhavesh P. Davda Avaya Inc bhavesh@avaya.com
This archive was generated by hypermail 2b29 : Sat Jun 15 2002 - 22:00:25 EST