It seems that once a SCHED_FIFO or SCHED_RR tasks gets control it does not yield to other tasks of higher priority. Attached is a test program (busyloop) that just loops doing gettimeofday() for the requested time and a little utility (rt) to run programs at real time priorities. Here is an annoted example of the problem: First, become root then: > rt 90 bash <-- run bash at priority 90 SCHED_RR > rt -f 30 busyloop 10 & <-- busyloop 10 at priority 30 SCHED_FIFO At this point the bash at priority 90 should be available, but is not. When the 10 second busyloop completes, bash returns. SCHED_RR is a bit different: > rt 90 bash <-- run bash at priority 90 SCHED_RR > rt 30 busyloop 10 & <-- busyloop 10 at priority 30 SCHED_RR At this point the bash at priority 90 prints the pid and a prompt and then does not respond for the duration of the busyloop. When the 10 second busyloop completes, bash returns. The program rt will explain itself if given no parameters. The program busyloop is just like sleep except that it loops on getimeofday() instead of sleeping. This test was run on a 2.5.70 bk9 system... -- George Anzinger george@mvista.com High-res-timers: http://sourceforge.net/projects/high-res-timers/ Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml