Hi! > It's been discussed before, but I suspect the main reason why it was > never done is no one submitted a patch. Also, the problem is actually > a pretty complex one. There are a couple of different stages where > you might want to send an alert to processes: > > * Data is starting to get ejected from page/buffer cache > * System is starting to swap > * System is starting to really struggle to find memory > * System is starting an out-of-memory killer > > AIX's SIGDANGER really did the last two, where the OOM killer would > tend to avoid processes that had a SIGDANGER handler in favor of > processes that were SIGDANGER unaware. > > Then there is the additional complexity in Linux that you have > multiple zones of memory, which at least on the historically more > popular x86 was highly, highly important. You could say that whenever > there is sufficient memory pressure in any zone that you start > ejecting data from caches or start to swap that you start sending the > signals --- but on x86 systems with lowmem, that could happen quite > frequently, and since a user process has no idea whether its resources > are in lowmem or highmem, there's not much you can do about this. As user pages are always in highmem, this should be easy to decide: only send SIGDANGER when highmem is full. (Yes, there are inodes/dentries/file descriptors in lowmem, but I doubt apps will respond to SIGDANGER by closing files). -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html