diff options
author | Christoph Lameter <clameter@sgi.com> | 2007-10-16 04:25:38 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:42:59 -0400 |
commit | 0e1e7c7a739562a321fda07c7cd2a97a7114f8f8 (patch) | |
tree | f2148e5b667152681625c19cf8b2a556500994ea /Documentation | |
parent | 523b945855a1427000ffc707c610abe5947ae607 (diff) |
Memoryless nodes: Use N_HIGH_MEMORY for cpusets
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_HIGH_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>
Signed-off-by: Bob Picco <bob.picco@hp.com>
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Mel Gorman <mel@skynet.ie>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/cpusets.txt | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt index f2c0a6842930..b875d231ac74 100644 --- a/Documentation/cpusets.txt +++ b/Documentation/cpusets.txt | |||
@@ -35,7 +35,8 @@ CONTENTS: | |||
35 | ---------------------- | 35 | ---------------------- |
36 | 36 | ||
37 | Cpusets provide a mechanism for assigning a set of CPUs and Memory | 37 | Cpusets provide a mechanism for assigning a set of CPUs and Memory |
38 | Nodes to a set of tasks. | 38 | Nodes to a set of tasks. In this document "Memory Node" refers to |
39 | an on-line node that contains memory. | ||
39 | 40 | ||
40 | Cpusets constrain the CPU and Memory placement of tasks to only | 41 | Cpusets constrain the CPU and Memory placement of tasks to only |
41 | the resources within a tasks current cpuset. They form a nested | 42 | the resources within a tasks current cpuset. They form a nested |
@@ -220,8 +221,8 @@ and name space for cpusets, with a minimum of additional kernel code. | |||
220 | The cpus and mems files in the root (top_cpuset) cpuset are | 221 | The cpus and mems files in the root (top_cpuset) cpuset are |
221 | read-only. The cpus file automatically tracks the value of | 222 | read-only. The cpus file automatically tracks the value of |
222 | cpu_online_map using a CPU hotplug notifier, and the mems file | 223 | cpu_online_map using a CPU hotplug notifier, and the mems file |
223 | automatically tracks the value of node_online_map using the | 224 | automatically tracks the value of node_states[N_MEMORY]--i.e., |
224 | cpuset_track_online_nodes() hook. | 225 | nodes with memory--using the cpuset_track_online_nodes() hook. |
225 | 226 | ||
226 | 227 | ||
227 | 1.4 What are exclusive cpusets ? | 228 | 1.4 What are exclusive cpusets ? |