Re: On the issue of low memory situations

From: Carlos Morgado (chbm@chbm.nu)
Date: Sat Mar 18 2000 - 17:43:05 EST


On Fri, Mar 17, 2000 at 05:33:33PM +0000, Nicholas Vinen wrote:
>
> On Fri, 17 Mar 2000, Linda Walsh wrote:
>
> > I haven't read through this whole thread, so this may have been
> > suggested, but why not have a new signal "SIGNMEM". Can't be caught but
> > can be ignored. Default is to take the signal and terminate the program
> > that faulted. If ignored, put process to sleep until the memory request
> > can be satisfied. Then something like 'X' or apache could ignore, while
> > 'gcc' would just die.
>
> Well, it might even be useful to be able to catch it. Example: 'X' gets
> a SIGNMEM. It responds by freeing any memory it might be using for bitmap
> caches, font glyph caches, anything unnecessary. When it returns from the
> signal, the system then has enough memory free to fulfill the request and
> continue the program. 'X' may have also set a flag somewhere when it
> caught this signal to tell itself at the first opportunity to shut down
> and print "low memory: aborting" if this was a desired behaviour. Better
> than a crash huh?
> Overall an excellent suggestion I think.
>

So you have 1 process hogging all the memory and all the others in a rather
peacefull state. You go OOM and SIGNMEM that process, which obviously ignore
it. Now you have a system that a) OOM b) with not chance in hell of
recovering memory, except in the case where a good program frees some
memory, which wakes up the hog for more hogging.
Congrats. You now have a program with no runnable processes.

-- 
Carlos Morgado - chbm(at)chbm(dot)nu - http://chbm.nu/ -- gpgkey: 0x1FC57F0A 
http://wwwkeys.pgp.net/ FP:0A27 35D3 C448 3641 0573 6876 2A37 4BB2 1FC5 7F0A
[there is no .sig available at the moment - please hold]

- 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/



This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:25 EST