From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail172.messagelabs.com (mail172.messagelabs.com [216.82.254.3]) by kanga.kvack.org (Postfix) with ESMTP id 82FEC6B01EE for ; Wed, 31 Mar 2010 06:38:42 -0400 (EDT) Received: from hpaq3.eem.corp.google.com (hpaq3.eem.corp.google.com [10.3.21.3]) by smtp-out.google.com with ESMTP id o2VAcbwj007970 for ; Wed, 31 Mar 2010 03:38:37 -0700 Received: from pzk31 (pzk31.prod.google.com [10.243.19.159]) by hpaq3.eem.corp.google.com with ESMTP id o2VAcBrQ027876 for ; Wed, 31 Mar 2010 12:38:35 +0200 Received: by pzk31 with SMTP id 31so2525985pzk.8 for ; Wed, 31 Mar 2010 03:38:35 -0700 (PDT) Date: Wed, 31 Mar 2010 03:38:33 -0700 (PDT) From: David Rientjes Subject: Re: [patch -mm] memcg: make oom killer a no-op when no killable task can be found In-Reply-To: <20100331080414.GO3308@balbir.in.ibm.com> Message-ID: References: <20100329140633.GA26464@desktop> <20100330142923.GA10099@desktop> <20100331095714.9137caab.kamezawa.hiroyu@jp.fujitsu.com> <20100331151356.673c16c0.kamezawa.hiroyu@jp.fujitsu.com> <20100331063007.GN3308@balbir.in.ibm.com> <20100331080414.GO3308@balbir.in.ibm.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-linux-mm@kvack.org To: Balbir Singh Cc: Andrew Morton , KAMEZAWA Hiroyuki , anfei , KOSAKI Motohiro , nishimura@mxp.nes.nec.co.jp, linux-mm@kvack.org List-ID: On Wed, 31 Mar 2010, Balbir Singh wrote: > > It's pointless to try to kill current if select_bad_process() did not > > find an eligible task to kill in mem_cgroup_out_of_memory() since it's > > guaranteed that current is a member of the memcg that is oom and it is, > > by definition, unkillable. > > > > Signed-off-by: David Rientjes > > --- > > mm/oom_kill.c | 5 +---- > > 1 files changed, 1 insertions(+), 4 deletions(-) > > > > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > > --- a/mm/oom_kill.c > > +++ b/mm/oom_kill.c > > @@ -500,12 +500,9 @@ void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask) > > read_lock(&tasklist_lock); > > retry: > > p = select_bad_process(&points, limit, mem, CONSTRAINT_NONE, NULL); > > - if (PTR_ERR(p) == -1UL) > > + if (!p || PTR_ERR(p) == -1UL) > > goto out; > > Should we have a bit fat WAR_ON_ONCE() here? > I'm not sure a WARN_ON_ONCE() is going to be too helpful to a sysadmin who has misconfigured the memcg here since all it will do is emit the stack trace and line number, it's not going to be immediately obvious that this is because all tasks in the cgroup are unkillable so he or she should do echo 1 > /dev/cgroup/blah/memory.oom_control as a remedy. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org