Messages in this thread | | | Date | Sat, 18 Mar 2000 22:43:05 +0000 | From | Carlos Morgado <> | Subject | Re: On the issue of low memory situations |
| |
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/
| |