diff options
| author | Lai Jiangshan <laijs@cn.fujitsu.com> | 2012-12-12 16:51:24 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-12 20:38:32 -0500 |
| commit | 38d7bee9d24adf4c95676a3dc902827c72930ebb (patch) | |
| tree | f61a6ae69f5976d31bfabe264dd36c8d4d7e3547 /kernel | |
| parent | 8219fc48adb3b09eabf502c560bf13f273ea69a3 (diff) | |
cpuset: use N_MEMORY instead N_HIGH_MEMORY
N_HIGH_MEMORY stands for the nodes that has normal or high memory.
N_MEMORY stands for the nodes that has any memory.
The code here need to handle with the nodes which have memory, we should
use N_MEMORY instead.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: Hillf Danton <dhillf@gmail.com>
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Lin Feng <linfeng@cn.fujitsu.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/cpuset.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index b017887d632..7bb63eea6eb 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
| @@ -302,10 +302,10 @@ static void guarantee_online_cpus(const struct cpuset *cs, | |||
| 302 | * are online, with memory. If none are online with memory, walk | 302 | * are online, with memory. If none are online with memory, walk |
| 303 | * up the cpuset hierarchy until we find one that does have some | 303 | * up the cpuset hierarchy until we find one that does have some |
| 304 | * online mems. If we get all the way to the top and still haven't | 304 | * online mems. If we get all the way to the top and still haven't |
| 305 | * found any online mems, return node_states[N_HIGH_MEMORY]. | 305 | * found any online mems, return node_states[N_MEMORY]. |
| 306 | * | 306 | * |
| 307 | * One way or another, we guarantee to return some non-empty subset | 307 | * One way or another, we guarantee to return some non-empty subset |
| 308 | * of node_states[N_HIGH_MEMORY]. | 308 | * of node_states[N_MEMORY]. |
| 309 | * | 309 | * |
| 310 | * Call with callback_mutex held. | 310 | * Call with callback_mutex held. |
| 311 | */ | 311 | */ |
| @@ -313,14 +313,14 @@ static void guarantee_online_cpus(const struct cpuset *cs, | |||
| 313 | static void guarantee_online_mems(const struct cpuset *cs, nodemask_t *pmask) | 313 | static void guarantee_online_mems(const struct cpuset *cs, nodemask_t *pmask) |
| 314 | { | 314 | { |
| 315 | while (cs && !nodes_intersects(cs->mems_allowed, | 315 | while (cs && !nodes_intersects(cs->mems_allowed, |
| 316 | node_states[N_HIGH_MEMORY])) | 316 | node_states[N_MEMORY])) |
| 317 | cs = cs->parent; | 317 | cs = cs->parent; |
| 318 | if (cs) | 318 | if (cs) |
| 319 | nodes_and(*pmask, cs->mems_allowed, | 319 | nodes_and(*pmask, cs->mems_allowed, |
| 320 | node_states[N_HIGH_MEMORY]); | 320 | node_states[N_MEMORY]); |
| 321 | else | 321 | else |
| 322 | *pmask = node_states[N_HIGH_MEMORY]; | 322 | *pmask = node_states[N_MEMORY]; |
| 323 | BUG_ON(!nodes_intersects(*pmask, node_states[N_HIGH_MEMORY])); | 323 | BUG_ON(!nodes_intersects(*pmask, node_states[N_MEMORY])); |
| 324 | } | 324 | } |
| 325 | 325 | ||
| 326 | /* | 326 | /* |
| @@ -1100,7 +1100,7 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs, | |||
| 1100 | return -ENOMEM; | 1100 | return -ENOMEM; |
| 1101 | 1101 | ||
| 1102 | /* | 1102 | /* |
| 1103 | * top_cpuset.mems_allowed tracks node_stats[N_HIGH_MEMORY]; | 1103 | * top_cpuset.mems_allowed tracks node_stats[N_MEMORY]; |
| 1104 | * it's read-only | 1104 | * it's read-only |
| 1105 | */ | 1105 | */ |
| 1106 | if (cs == &top_cpuset) { | 1106 | if (cs == &top_cpuset) { |
| @@ -1122,7 +1122,7 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs, | |||
| 1122 | goto done; | 1122 | goto done; |
| 1123 | 1123 | ||
| 1124 | if (!nodes_subset(trialcs->mems_allowed, | 1124 | if (!nodes_subset(trialcs->mems_allowed, |
| 1125 | node_states[N_HIGH_MEMORY])) { | 1125 | node_states[N_MEMORY])) { |
| 1126 | retval = -EINVAL; | 1126 | retval = -EINVAL; |
| 1127 | goto done; | 1127 | goto done; |
| 1128 | } | 1128 | } |
| @@ -2026,7 +2026,7 @@ static struct cpuset *cpuset_next(struct list_head *queue) | |||
| 2026 | * before dropping down to the next. It always processes a node before | 2026 | * before dropping down to the next. It always processes a node before |
| 2027 | * any of its children. | 2027 | * any of its children. |
| 2028 | * | 2028 | * |
| 2029 | * In the case of memory hot-unplug, it will remove nodes from N_HIGH_MEMORY | 2029 | * In the case of memory hot-unplug, it will remove nodes from N_MEMORY |
| 2030 | * if all present pages from a node are offlined. | 2030 | * if all present pages from a node are offlined. |
| 2031 | */ | 2031 | */ |
| 2032 | static void | 2032 | static void |
| @@ -2065,7 +2065,7 @@ scan_cpusets_upon_hotplug(struct cpuset *root, enum hotplug_event event) | |||
| 2065 | 2065 | ||
| 2066 | /* Continue past cpusets with all mems online */ | 2066 | /* Continue past cpusets with all mems online */ |
| 2067 | if (nodes_subset(cp->mems_allowed, | 2067 | if (nodes_subset(cp->mems_allowed, |
| 2068 | node_states[N_HIGH_MEMORY])) | 2068 | node_states[N_MEMORY])) |
| 2069 | continue; | 2069 | continue; |
| 2070 | 2070 | ||
| 2071 | oldmems = cp->mems_allowed; | 2071 | oldmems = cp->mems_allowed; |
| @@ -2073,7 +2073,7 @@ scan_cpusets_upon_hotplug(struct cpuset *root, enum hotplug_event event) | |||
| 2073 | /* Remove offline mems from this cpuset. */ | 2073 | /* Remove offline mems from this cpuset. */ |
| 2074 | mutex_lock(&callback_mutex); | 2074 | mutex_lock(&callback_mutex); |
| 2075 | nodes_and(cp->mems_allowed, cp->mems_allowed, | 2075 | nodes_and(cp->mems_allowed, cp->mems_allowed, |
| 2076 | node_states[N_HIGH_MEMORY]); | 2076 | node_states[N_MEMORY]); |
| 2077 | mutex_unlock(&callback_mutex); | 2077 | mutex_unlock(&callback_mutex); |
| 2078 | 2078 | ||
| 2079 | /* Move tasks from the empty cpuset to a parent */ | 2079 | /* Move tasks from the empty cpuset to a parent */ |
| @@ -2126,8 +2126,8 @@ void cpuset_update_active_cpus(bool cpu_online) | |||
| 2126 | 2126 | ||
| 2127 | #ifdef CONFIG_MEMORY_HOTPLUG | 2127 | #ifdef CONFIG_MEMORY_HOTPLUG |
| 2128 | /* | 2128 | /* |
| 2129 | * Keep top_cpuset.mems_allowed tracking node_states[N_HIGH_MEMORY]. | 2129 | * Keep top_cpuset.mems_allowed tracking node_states[N_MEMORY]. |
| 2130 | * Call this routine anytime after node_states[N_HIGH_MEMORY] changes. | 2130 | * Call this routine anytime after node_states[N_MEMORY] changes. |
| 2131 | * See cpuset_update_active_cpus() for CPU hotplug handling. | 2131 | * See cpuset_update_active_cpus() for CPU hotplug handling. |
| 2132 | */ | 2132 | */ |
| 2133 | static int cpuset_track_online_nodes(struct notifier_block *self, | 2133 | static int cpuset_track_online_nodes(struct notifier_block *self, |
| @@ -2140,7 +2140,7 @@ static int cpuset_track_online_nodes(struct notifier_block *self, | |||
| 2140 | case MEM_ONLINE: | 2140 | case MEM_ONLINE: |
| 2141 | oldmems = top_cpuset.mems_allowed; | 2141 | oldmems = top_cpuset.mems_allowed; |
| 2142 | mutex_lock(&callback_mutex); | 2142 | mutex_lock(&callback_mutex); |
| 2143 | top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; | 2143 | top_cpuset.mems_allowed = node_states[N_MEMORY]; |
| 2144 | mutex_unlock(&callback_mutex); | 2144 | mutex_unlock(&callback_mutex); |
| 2145 | update_tasks_nodemask(&top_cpuset, &oldmems, NULL); | 2145 | update_tasks_nodemask(&top_cpuset, &oldmems, NULL); |
| 2146 | break; | 2146 | break; |
| @@ -2169,7 +2169,7 @@ static int cpuset_track_online_nodes(struct notifier_block *self, | |||
| 2169 | void __init cpuset_init_smp(void) | 2169 | void __init cpuset_init_smp(void) |
| 2170 | { | 2170 | { |
| 2171 | cpumask_copy(top_cpuset.cpus_allowed, cpu_active_mask); | 2171 | cpumask_copy(top_cpuset.cpus_allowed, cpu_active_mask); |
| 2172 | top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; | 2172 | top_cpuset.mems_allowed = node_states[N_MEMORY]; |
| 2173 | 2173 | ||
| 2174 | hotplug_memory_notifier(cpuset_track_online_nodes, 10); | 2174 | hotplug_memory_notifier(cpuset_track_online_nodes, 10); |
| 2175 | 2175 | ||
| @@ -2237,7 +2237,7 @@ void cpuset_init_current_mems_allowed(void) | |||
| 2237 | * | 2237 | * |
| 2238 | * Description: Returns the nodemask_t mems_allowed of the cpuset | 2238 | * Description: Returns the nodemask_t mems_allowed of the cpuset |
| 2239 | * attached to the specified @tsk. Guaranteed to return some non-empty | 2239 | * attached to the specified @tsk. Guaranteed to return some non-empty |
| 2240 | * subset of node_states[N_HIGH_MEMORY], even if this means going outside the | 2240 | * subset of node_states[N_MEMORY], even if this means going outside the |
| 2241 | * tasks cpuset. | 2241 | * tasks cpuset. |
| 2242 | **/ | 2242 | **/ |
| 2243 | 2243 | ||
