Re: linux-kernel-digest V1 #1312

Steffen Ullrich (ccrlphr@xensei.com)
Fri, 14 Nov 1997 19:37:25 +0100


> From: Mitch Davis <mjd@nsmd.aus.hp.com>
> Date: Fri, 14 Nov 1997 17:39:10 +1100
> Subject: Ideas for memory management hackers.
>
> Rik van Riel wrote:
> >
> > Send Linux memory-management wishes to me: I'm currently looking
> > for something to hack...
>

what I really like to see is something like various "importance levels" for
processes. imagine the following: An remote system behaves really bad and you
want to have a look at it. You try to telnet to the machine but what happens
there is that inetd tries to spwan in.telnetd. Because the system is already
heavily used it cant get the memory/swap space needed to start in.telnetd on
this system. A nice thing in this case would be that the system could be
configured to consider in.telnetd as a very important application and do
everything to start it, even if it needs to kill some less important processes.

I had similar problems several times on OSF/1 (DEC UNIX) where I run a big
application on a remote machine. I guess the following happened:
The application took more and more memory but now another process got scheduled
by the system so the system needed to move some pages of my app to the swap
space. unfortunatly there wasn't any more space so OSF/1 too his strategy to get
some free space - it killed the processes which were not used for the longest
time. unfortunatly in this cases this was inetd :(

It was probably a bit different but that is what I understood from the
explanation I got. There are two modes of allocating swap space in OSF/1.
one is the deferred mode which allocates a page in the swap space once a page
needs to be swapped out, the other more conservative mode allocates a space
in the swap area for each page used by the system. The first mode is a bit
faster and uses less memory but has the problem above. The machine used the
deferred mode which is I think similar to the mode linux uses - otherwise you
couldn't run a system w/o swap space setup.

Anyways, this kind of "importance" could be really useful because in critical
situations there would be a better chance that your important applications will
continue to run ore are able to start.
The thing I could imagine the whole issue is that every process has an
importance. If a new process gets spawned it inherits the importance if its
parent, where the mother of all processes (usually "init") gets the highest
importance on start. Then there should be a way for a process to change its
importance ( maybe a syscall similar to "nice" ). Only root process are allowed
to increase its level but everybody can decrease it.

How does it sound or is there another/better way to deal with the above problem?