From: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
To: David Rientjes <rientjes@google.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Christoph Lameter <cl@linux-foundation.org>,
Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Subject: Re: [BUGFIX][PATCH] oom-kill: fix NUMA consraint check with nodemask v4.2
Date: Wed, 18 Nov 2009 10:41:59 +0900 [thread overview]
Message-ID: <20091118104159.a754414f.nishimura@mxp.nes.nec.co.jp> (raw)
In-Reply-To: <alpine.DEB.2.00.0911171609370.12532@chino.kir.corp.google.com>
Hi.
On Tue, 17 Nov 2009 16:11:58 -0800 (PST), David Rientjes <rientjes@google.com> wrote:
> On Wed, 11 Nov 2009, KAMEZAWA Hiroyuki wrote:
>
> > Fixing node-oriented allocation handling in oom-kill.c
> > I myself think this as bugfix not as ehnancement.
> >
> > In these days, things are changed as
> > - alloc_pages() eats nodemask as its arguments, __alloc_pages_nodemask().
> > - mempolicy don't maintain its own private zonelists.
> > (And cpuset doesn't use nodemask for __alloc_pages_nodemask())
> >
> > So, current oom-killer's check function is wrong.
> >
> > This patch does
> > - check nodemask, if nodemask && nodemask doesn't cover all
> > node_states[N_HIGH_MEMORY], this is CONSTRAINT_MEMORY_POLICY.
> > - Scan all zonelist under nodemask, if it hits cpuset's wall
> > this faiulre is from cpuset.
> > And
> > - modifies the caller of out_of_memory not to call oom if __GFP_THISNODE.
> > This doesn't change "current" behavior. If callers use __GFP_THISNODE
> > it should handle "page allocation failure" by itself.
> >
> > - handle __GFP_NOFAIL+__GFP_THISNODE path.
> > This is something like a FIXME but this gfpmask is not used now.
> >
>
> Now that we're passing the nodemask into the oom killer, we should be able
> to do more intelligent CONSTRAINT_MEMORY_POLICY selection. current is not
> always the ideal task to kill, so it's better to scan the tasklist and
> determine the best task depending on our heuristics, similiar to how we
> penalize candidates if they do not share the same cpuset.
>
> Something like the following (untested) patch. Comments?
I agree to this direction.
Taking into account the usage per node which is included in nodemask might be useful,
but we don't have per node rss counter per task now and it would add some overhead,
so I think this would be enough(at leaset for now).
Just a minor nitpick:
> @@ -472,7 +491,7 @@ void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask)
>
> read_lock(&tasklist_lock);
> retry:
> - p = select_bad_process(&points, mem);
> + p = select_bad_process(&points, mem, NULL);
> if (PTR_ERR(p) == -1UL)
> goto out;
>
need to pass "CONSTRAINT_NONE" too.
Thanks,
Daisuke Nishimura.
--
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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2009-11-18 1:48 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-04 8:09 [BUGFIX][PATCH] oom-kill: fix NUMA consraint check with nodemask KAMEZAWA Hiroyuki
2009-11-06 0:02 ` [BUGFIX][PATCH] oom-kill: fix NUMA consraint check with nodemask v2 KAMEZAWA Hiroyuki
2009-11-10 7:24 ` KOSAKI Motohiro
2009-11-10 7:24 ` KAMEZAWA Hiroyuki
2009-11-10 7:39 ` KOSAKI Motohiro
2009-11-10 7:40 ` KAMEZAWA Hiroyuki
2009-11-10 8:03 ` Daisuke Nishimura
2009-11-10 8:17 ` KAMEZAWA Hiroyuki
2009-11-11 2:24 ` [BUGFIX][PATCH] oom-kill: fix NUMA consraint check with nodemask v3 KAMEZAWA Hiroyuki
2009-11-11 2:36 ` KOSAKI Motohiro
2009-11-11 2:49 ` David Rientjes
2009-11-11 3:02 ` KOSAKI Motohiro
2009-11-11 3:10 ` KAMEZAWA Hiroyuki
2009-11-11 3:14 ` David Rientjes
2009-11-11 3:23 ` KOSAKI Motohiro
2009-11-11 3:27 ` David Rientjes
2009-11-11 3:04 ` KAMEZAWA Hiroyuki
2009-11-11 4:45 ` [BUGFIX][PATCH] oom-kill: fix NUMA consraint check with nodemask v4 KAMEZAWA Hiroyuki
2009-11-11 5:28 ` [BUGFIX][PATCH] oom-kill: fix NUMA consraint check with nodemask v4.1 KAMEZAWA Hiroyuki
2009-11-11 5:58 ` David Rientjes
2009-11-11 6:20 ` KAMEZAWA Hiroyuki
2009-11-11 6:26 ` David Rientjes
2009-11-11 6:34 ` [BUGFIX][PATCH] oom-kill: fix NUMA consraint check with nodemask v4.2 KAMEZAWA Hiroyuki
2009-11-11 7:32 ` David Rientjes
2009-11-18 0:11 ` David Rientjes
2009-11-18 0:58 ` KAMEZAWA Hiroyuki
2009-11-18 2:13 ` David Rientjes
2009-12-15 1:16 ` Andrew Morton
2009-12-15 1:32 ` KAMEZAWA Hiroyuki
2009-12-15 1:38 ` KOSAKI Motohiro
2009-12-15 4:30 ` David Rientjes
2009-12-15 4:35 ` KAMEZAWA Hiroyuki
2009-12-15 4:54 ` David Rientjes
2009-12-15 5:19 ` KOSAKI Motohiro
2009-12-17 22:21 ` David Rientjes
2009-12-18 4:30 ` KOSAKI Motohiro
2009-12-18 10:04 ` David Rientjes
2009-12-15 4:57 ` KAMEZAWA Hiroyuki
2009-12-15 4:43 ` KAMEZAWA Hiroyuki
2009-12-15 4:57 ` David Rientjes
2009-12-15 5:09 ` KAMEZAWA Hiroyuki
2009-12-17 22:23 ` David Rientjes
2009-12-17 23:33 ` KAMEZAWA Hiroyuki
2009-12-15 4:47 ` KOSAKI Motohiro
2009-12-15 5:03 ` David Rientjes
2009-11-18 1:41 ` Daisuke Nishimura [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091118104159.a754414f.nishimura@mxp.nes.nec.co.jp \
--to=nishimura@mxp.nes.nec.co.jp \
--cc=akpm@linux-foundation.org \
--cc=cl@linux-foundation.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rientjes@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox