From: Paul Jackson <pj@sgi.com>
To: Christoph Lameter <clameter@engr.sgi.com>
Cc: akpm@osdl.org, ak@suse.de, linux-kernel@vger.kernel.org
Subject: Re: Terminate process that fails on a constrained allocation
Date: Wed, 8 Feb 2006 10:33:23 -0800 [thread overview]
Message-ID: <20060208103323.7ba3709e.pj@sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.62.0602081004060.2648@schroedinger.engr.sgi.com>
A couple of comments ...
It took me an extra couple of passes to understand this code.
I wonder if the following, essentially equivalent (if I didn't
break something - never tested this) is easier to understand:
#ifdef CONFIG_NUMA
/*
* In the NUMA case we may have gotten here because the
* memory policies or cpusets have restricted the allocation.
*/
{
nodemask_t nodes; /* compute nodes not allowd */
nodes = node_online_map;
for (z = zonelist->zones; *z; z++)
if (cpuset_zone_allowed(*z, gfp_mask))
node_clear((*z)->zone_pgdat->node_id,
nodes);
/*
* If there are any nodes left set in 'nodes', these
* are nodes the cpuset or mempolicy settings aren't
* letting us use. In that case, return NULL to the
* current task, rather than invoking out_of_memory()
* on the system.
*/
if (!nodes_empty(nodes))
return NULL;
}
#endif
Second point - I thought I had already throttled the oom_killer
to some degree, with the lines, in mm/oom_kill.c select_bad_process():
/* If p's nodes don't overlap ours, it won't help to kill p. */
if (!cpuset_excl_nodes_overlap(p))
continue;
What your patch is doing affectively disables the oom_killer for
big numa systems, rather than having it operate within the set
of tasks using overlapping resources.
Do we need this more radical constraint on the oom_killer?
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.925.600.0401
next prev parent reply other threads:[~2006-02-08 18:33 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-08 18:05 Christoph Lameter
2006-02-08 18:13 ` Andi Kleen
2006-02-08 18:34 ` Paul Jackson
2006-02-08 18:54 ` Christoph Lameter
2006-02-08 19:01 ` Andi Kleen
2006-02-08 19:15 ` Christoph Lameter
2006-02-08 18:33 ` Paul Jackson [this message]
2006-02-08 18:42 ` Christoph Lameter
2006-02-08 18:57 ` Paul Jackson
2006-02-08 19:02 ` Christoph Lameter
2006-02-08 19:05 ` Andi Kleen
2006-02-08 20:22 ` Paul Jackson
2006-02-08 20:36 ` Christoph Lameter
2006-02-08 20:55 ` Paul Jackson
2006-02-08 21:01 ` Andi Kleen
2006-02-08 21:03 ` Paul Jackson
2006-02-08 21:21 ` Andi Kleen
2006-02-08 21:39 ` Andrew Morton
2006-02-08 22:11 ` Christoph Lameter
2006-02-08 22:41 ` Andi Kleen
2006-02-08 23:29 ` Christoph Lameter
2006-02-08 23:35 ` Andrew Morton
2006-02-08 22:48 ` Christoph Lameter
2006-02-08 23:28 ` Christoph Lameter
2006-02-08 23:43 ` Andrew Morton
2006-02-08 23:54 ` Christoph Lameter
2006-02-08 23:57 ` Andi Kleen
2006-02-08 20:14 linux
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=20060208103323.7ba3709e.pj@sgi.com \
--to=pj@sgi.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=clameter@engr.sgi.com \
--cc=linux-kernel@vger.kernel.org \
/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
Powered by JetHome