I think what Rik means is that a RT process can try to get a lock
(i.e. directory semaphore) which is held by a SCHED_OTHER process. The
SCHED_OTHER process stops getting CPU time, and thus cannot release
the lock. Hence we have deadlock. Of course, a RT process hitting the
FS is somewhat questionable, but in some cases is legitimate (i.e. you
have two RT processes, the high priority one queues data to the low
priority one which hits the FS), provided you know what you are doing.
SCHED_IDLE presents the same problem: SCHED_IDLE process holds a lock,
which locks out a SCHED_OTHER process. Again, permanently.
So SCHED_IDLE shouldn't be lambasted for making a deadlock possible,
because SCHED_OTHER (in the presence of RT processes) can do the
same. Which is why I support moving !SCHED_OTHER processes to
SCHED_OTHER when they call schedule(), and moving them back when
schedule() returns.
Regards,
Richard....
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/