Messages in this thread Patch in this message | | | Date | Tue, 26 Apr 2011 10:54:29 +0800 | From | Dave Young <> | Subject | [PATCH] use oom_killer_disabled in all oom pathes |
| |
oom_killer_disable should be a global switch, also fit for oom paths other than __alloc_pages_slowpath
Here add it to mem_cgroup_handle_oom and pagefault_out_of_memory as well.
Signed-off-by: Dave Young <hidave.darkstar@gmail.com> --- mm/memcontrol.c | 2 +- mm/oom_kill.c | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-) --- linux-2.6.orig/mm/memcontrol.c 2011-04-20 15:49:10.336660690 +0800 +++ linux-2.6/mm/memcontrol.c 2011-04-26 10:41:04.746459757 +0800 @@ -1610,7 +1610,7 @@ bool mem_cgroup_handle_oom(struct mem_cg * under OOM is always welcomed, use TASK_KILLABLE here. */ prepare_to_wait(&memcg_oom_waitq, &owait.wait, TASK_KILLABLE); - if (!locked || mem->oom_kill_disable) + if (!locked || mem->oom_kill_disable || oom_killer_disabled) need_to_kill = false; if (locked) mem_cgroup_oom_notify(mem); --- linux-2.6.orig/mm/oom_kill.c 2011-04-20 15:49:10.353327356 +0800 +++ linux-2.6/mm/oom_kill.c 2011-04-26 10:41:04.753126423 +0800 @@ -747,6 +747,9 @@ out: */ void pagefault_out_of_memory(void) { + if (oom_killer_disabled) + return; + if (try_set_system_oom()) { out_of_memory(NULL, 0, 0, NULL); clear_system_oom();
| |