From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from d01relay02.pok.ibm.com (d01relay02.pok.ibm.com [9.56.227.234]) by e1.ny.us.ibm.com (8.13.8/8.13.8) with ESMTP id l6R0egY9007762 for ; Thu, 26 Jul 2007 20:40:42 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay02.pok.ibm.com (8.13.8/8.13.8/NCO v8.4) with ESMTP id l6R0egvo529268 for ; Thu, 26 Jul 2007 20:40:42 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id l6R0efm5005568 for ; Thu, 26 Jul 2007 20:40:42 -0400 Date: Thu, 26 Jul 2007 17:40:41 -0700 From: Nishanth Aravamudan Subject: Re: [PATCH take3] Memoryless nodes: use "node_memory_map" for cpuset mems_allowed validation Message-ID: <20070727004041.GP18510@us.ibm.com> References: <20070711182219.234782227@sgi.com> <20070711182250.005856256@sgi.com> <1185309019.5649.69.camel@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1185309019.5649.69.camel@localhost> Sender: owner-linux-mm@kvack.org Return-Path: To: Lee Schermerhorn Cc: Christoph Lameter , Paul Jackson , akpm@linux-foundation.org, kxr@sgi.com, linux-mm@kvack.org, KAMEZAWA Hiroyuki List-ID: 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 > > 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 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) -- Nishanth Aravamudan IBM Linux Technology Center -- 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