Re: [PATCH] oom, memcg: handle sysctl oom_kill_allocating_task while memcg oom happening
From: David Rientjes <hidden>
Date: 2012-10-16 18:44:28
Also in:
linux-mm, lkml
From: David Rientjes <hidden>
Date: 2012-10-16 18:44:28
Also in:
linux-mm, lkml
On Tue, 16 Oct 2012, Sha Zhengju wrote:
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index e4e9b18..c329940 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c@@ -1486,6 +1486,15 @@ static void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, check_panic_on_oom(CONSTRAINT_MEMCG, gfp_mask, order, NULL); totalpages = mem_cgroup_get_limit(memcg) >> PAGE_SHIFT ? : 1; + if (sysctl_oom_kill_allocating_task && current->mm && + !oom_unkillable_task(current, memcg, NULL) && + current->signal->oom_score_adj != OOM_SCORE_ADJ_MIN) { + get_task_struct(current); + oom_kill_process(current, gfp_mask, order, 0, totalpages, memcg, NULL, + "Memory cgroup out of memory (oom_kill_allocating_task)"); + return; + } + for_each_mem_cgroup_tree(iter, memcg) { struct cgroup *cgroup = iter->css.cgroup; struct cgroup_iter it;
Please try to compile your patches and run scripts/checkpatch.pl on them before proposing them. You'll also need to update Documentation/sysctl/vm.txt.