One thing that occurs to me is that one can use the multiple run queues
idea. But not for running processes.
Suppose that vital root processes were somehow started on a special run
queue (that's just to give them a "special" character). Then in an out
of memory situation, kill processes that are not on that run queue.
Only start daemons from init on that queue by default. It's not a bad
idea to put demons under the control of init anyway.
Separation of rights/preferences is needed to control oom. Killing "the
most likely culprit" is fair enough, but a better answer is to define
processes rights and expectations more clearly. There is a group of
processes that has a right and the expectation to get and hold a certain
amount of memory. That is init and maybe a "monitor" daemon.
How much work would it be to split the run queues one more time, for no good
process queueing reason?
Peter
-
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/