To keep linux fast we should keep linux simple.
The basic problem really seems to be processes can starve. So why not
simply say: If a process is in the kernel, it should make at least
some progress. There are many ways to do this, e.g.:
Allow only normally scheduled processes in the kernel.
if SCHED_IDLE enters kernel mode, it becomes nice 19 untill it leaves
if SCHED FIFO processes enter kernel mode, they become nice -19 until they leave
(or make normal scheduling correspond to 1 fifo entry. The precise strategy
does not really matter as long as progress for ALL is guarenteed)
(this seems to generalise to a multi level queue system where each queue as a
whole is an entry in the higher queue)
(this also solves the problem of a wild sched_fifo process completely locking you
out from the machine, which is a variation on the same theme)
-- EAGLES MAY SOAR BUT WEASELS NEVER GET SUCKED INTO JET AIR INTAKES - Brian Mulroney -from "Bumper stickers for fighter pilots"
- 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/