From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
To: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: Christoph Lameter <clameter@sgi.com>, Paul Jackson <pj@sgi.com>,
akpm@linux-foundation.org, kxr@sgi.com, linux-mm@kvack.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Bob Picco <bob.picco@hp.com>
Subject: Re: [PATCH take3] Memoryless nodes: use "node_memory_map" for cpuset mems_allowed validation
Date: Fri, 27 Jul 2007 10:15:35 -0400 [thread overview]
Message-ID: <1185545735.5069.7.camel@localhost> (raw)
In-Reply-To: <20070727004041.GP18510@us.ibm.com>
On Thu, 2007-07-26 at 17:40 -0700, Nishanth Aravamudan wrote:
> On 24.07.2007 [16:30:19 -0400], Lee Schermerhorn wrote:
> > Memoryless Nodes: use "node_memory_map" for cpusets - take 3
> >
> > Against 2.6.22-rc6-mm1 atop Christoph Lameter's memoryless nodes
> > series
> >
> > take 2:
> > + replaced node_online_map in cpuset_current_mems_allowed()
> > with node_states[N_MEMORY]
> > + replaced node_online_map in cpuset_init_smp() with
> > node_states[N_MEMORY]
> >
> > take 3:
> > + fix up comments and top level cpuset tracking of nodes
> > with memory [instead of on-line nodes].
> > + maybe I got them all this time?
> >
> > cpusets try to ensure that any node added to a cpuset's
> > mems_allowed is on-line and contains memory. The assumption
> > was that online nodes contained memory. Thus, it is possible
> > to add memoryless nodes to a cpuset and then add tasks to this
> > cpuset. This results in continuous series of oom-kill and
> > apparent system hang.
> >
> > Change cpusets to use node_states[N_MEMORY] [a.k.a.
> > node_memory_map] in place of node_online_map when vetting
> > memories. Return error if admin attempts to write a non-empty
> > mems_allowed node mask containing only memoryless-nodes.
> >
> > Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com>
> >
> > include/linux/cpuset.h | 2 -
> > kernel/cpuset.c | 51 +++++++++++++++++++++++++++++++------------------
> > 2 files changed, 34 insertions(+), 19 deletions(-)
>
> Small typo fix which prevents build with !CPUSETS.
>
> ---
> FYI: I noticed that oldconfig on 2.6.23-rc1-mm1 with CPUSETS=y disables
> CPUSETS because of the introduction of CONFIG_CONTAINERS :(
>
> Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
>
> diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
> index f8f4f68..d01b1bc 100644
> --- a/include/linux/cpuset.h
> +++ b/include/linux/cpuset.h
> @@ -92,7 +92,7 @@ static inline nodemask_t cpuset_mems_allowed(struct task_struct *p)
> return node_possible_map;
> }
>
> -#define cpuset_current_mems_allowed (node_states[N_MEMORY))
> +#define cpuset_current_mems_allowed (node_states[N_MEMORY])
> static inline void cpuset_init_current_mems_allowed(void) {}
> static inline void cpuset_update_task_memory_state(void) {}
> #define cpuset_nodes_subset_current_mems_allowed(nodes) (1)
>
Thanks, Nish. Bob Picco pointed that out to me and I've fixed it in
take4. Bob is reviewing the patches and should get back to me today if
he has any issues. I've tested the current patches against 23-rc1-mm1
overnight on the following config and it held up fine.
Configuration: 100% cell local memory, boot with mem=16g [out of 32G
available]. Gave me one memoryless node, and one very small node:
available: 5 nodes (0-4)
node 0 size: 7600 MB
node 0 free: 6647 MB
node 1 size: 8127 MB
node 1 free: 7675 MB
node 2 size: 144 MB
node 2 free: 94 MB
node 3 size: 0 MB
node 3 free: 0 MB
node 4 size: 511 MB
node 4 free: 494 MB
Ran test exerciser [custom workload in Dave Anderson's "usex" program]
in a cpuset containing cpus and memory from nodes 1-3]. Not a lot of
mempolicy testing, but fairly stressful, otherwise.
Lee
--
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>
next prev parent reply other threads:[~2007-07-27 14:15 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070711182219.234782227@sgi.com>
[not found] ` <20070711182252.138829364@sgi.com>
2007-07-11 18:46 ` [patch 10/12] Memoryless nodes: Update memory policy and page migration Nishanth Aravamudan
2007-07-11 18:56 ` Christoph Lameter
[not found] ` <20070711182252.376540447@sgi.com>
2007-07-11 19:04 ` [patch 11/12] Add N_CPU node state Christoph Lameter
[not found] ` <20070711182250.005856256@sgi.com>
2007-07-11 19:06 ` [patch 01/12] NUMA: Generic management of nodemasks for various purposes Christoph Lameter
2007-07-11 19:32 ` Lee Schermerhorn
2007-07-20 20:49 ` [PATCH] Memoryless nodes: use "node_memory_map" for cpuset mems_allowed validation Lee Schermerhorn
2007-07-20 22:07 ` Nishanth Aravamudan
2007-07-23 19:09 ` Nishanth Aravamudan
2007-07-23 19:23 ` Paul Jackson
2007-07-23 20:08 ` Nishanth Aravamudan
2007-07-23 20:59 ` Lee Schermerhorn
2007-07-23 21:48 ` Nishanth Aravamudan
2007-07-24 14:11 ` Lee Schermerhorn
2007-07-24 16:16 ` Nishanth Aravamudan
2007-07-24 14:15 ` [PATCH take2] " Lee Schermerhorn
2007-07-24 16:19 ` Nishanth Aravamudan
2007-07-24 19:01 ` Lee Schermerhorn
2007-07-25 15:50 ` Nishanth Aravamudan
2007-07-24 20:30 ` [PATCH take3] " Lee Schermerhorn
2007-07-25 15:53 ` Nishanth Aravamudan
2007-07-25 22:00 ` Nishanth Aravamudan
2007-07-26 13:04 ` Lee Schermerhorn
2007-07-27 0:40 ` Nishanth Aravamudan
2007-07-27 14:15 ` Lee Schermerhorn [this message]
2007-07-24 20:35 ` [PATCH/RFC] Memoryless nodes: Suppress redundant "node with no memory" messages Lee Schermerhorn
2007-07-25 15:56 ` Nishanth Aravamudan
[not found] ` <20070711182251.433134748@sgi.com>
2007-07-12 0:07 ` [patch 07/12] Memoryless nodes: SLUB support Andrew Morton
2007-07-12 1:42 ` Christoph Lameter
2007-07-12 18:33 ` Nishanth Aravamudan
2007-07-12 18:38 ` Christoph Lameter
2007-07-13 15:14 ` [patch 00/12] NUMA: Memoryless node support V3 Nishanth Aravamudan
2007-07-13 16:43 ` Christoph Lameter
2007-07-13 16:52 ` Nishanth Aravamudan
2007-07-13 17:20 ` Lee Schermerhorn
2007-07-13 17:23 ` Christoph Lameter
2007-07-13 19:22 ` Lee Schermerhorn
2007-07-13 20:53 ` Lee Schermerhorn
2007-07-13 21:34 ` Christoph Lameter
2007-07-13 23:18 ` Nishanth Aravamudan
[not found] ` <1185310277.5649.90.camel@localhost>
[not found] ` <Pine.LNX.4.64.0707241402010.4773@schroedinger.engr.sgi.com>
[not found] ` <1185372692.5604.22.camel@localhost>
2007-07-25 15:45 ` Lee Schermerhorn
2007-07-25 19:16 ` 2.6.23-rc1-mm1: boot hang on ia64 with memoryless nodes Lee Schermerhorn
2007-07-25 19:38 ` Christoph Lameter
2007-07-25 20:03 ` Christoph Lameter
2007-07-25 21:18 ` Lee Schermerhorn
2007-07-26 13:53 ` Lee Schermerhorn
2007-07-26 14:00 ` KAMEZAWA Hiroyuki
2007-07-26 18:10 ` Lee Schermerhorn
2007-07-26 14:33 ` Lee Schermerhorn
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=1185545735.5069.7.camel@localhost \
--to=lee.schermerhorn@hp.com \
--cc=akpm@linux-foundation.org \
--cc=bob.picco@hp.com \
--cc=clameter@sgi.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kxr@sgi.com \
--cc=linux-mm@kvack.org \
--cc=nacc@us.ibm.com \
--cc=pj@sgi.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