Hello. As far as I know, if overcommit is disabled, the OOM kill should never happen. It seems to be the bug in the linux kernel though (any version I think, probably also including 2.4.x), which makes it possible to overcommit almost arbitrary and provoke an OOM kill afterwards. Attached is a program that demonstrates the bug. Don't forget to "swapoff -a" before starting it, or touching pages will take eternity. And the amount of RAM must be <1Gb, or the prog will not work:) On 2.4.25 I get: --- May 11 22:28:18 lin kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0) May 11 22:28:20 lin syslogd: /var/log/debug: Cannot allocate memory May 11 22:28:18 lin kernel: VM: killing process mozilla-bin May 11 22:28:18 lin kernel: __alloc_pages: 0-order allocation failed (gfp=0x1f0/0) May 11 22:28:20 lin kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0) May 11 22:28:21 lin kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0) May 11 22:28:21 lin kernel: VM: killing process X May 11 22:28:21 lin gnome-name-server[1254]: input condition is: 0x11, exiting May 11 22:29:00 lin kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0) May 11 22:29:00 lin kernel: VM: killing process overc_test --- As you can see, the program caused many other processes to be killed, before it died itself. 2.6.6 seems to kill only the test program itself, but there is one nasty side-effect here, that mprotect() fails to merge VMAs because one VMA can end up with VM_ACCOUNT flag set, and another - without that flag. That makes several apps of mine to malfuncate. Also it might be possible to bypass the security_vm_enough_memory() checks, which may probably be exploitable in some other ways. I am also attaching the fix for 2.6 kernels. Would be nice if someone can confirm the bug and verify the fix. Perhaps I am missing something obvious here, at least the fact that both 2.6 and 2.4 behaves similar, confuses me. And the fix looks also very strange, but it seems to work.