The oom-killer will refuse to kill if there is free swapspace. This is wrong, because it assumes that there are swappable pages in the affected zone. it caould all be mlocked memory, or slab, or whatever. Simply remove that test. 25-akpm/mm/oom_kill.c | 6 ------ 1 files changed, 6 deletions(-) diff -puN mm/oom_kill.c~oomkill-if-free-swap mm/oom_kill.c --- 25/mm/oom_kill.c~oomkill-if-free-swap Tue Jul 1 14:31:27 2003 +++ 25-akpm/mm/oom_kill.c Tue Jul 1 14:32:01 2003 @@ -216,12 +216,6 @@ void out_of_memory(void) static unsigned long first, last, count, lastkill; unsigned long now, since; - /* - * Enough swap space left? Not OOM. - */ - if (nr_swap_pages > 0) - return; - spin_lock(&oom_lock); now = jiffies; since = now - last; _