提交 2dca53a9 编写于 作者: C Christoph Lameter 提交者: Linus Torvalds

Memoryless nodes: Uncached allocator updates

The checks for node_online in the uncached allocator are made to make sure
that memory is available on these nodes.  Thus switch all the checks to use
N_HIGH_MEMORY and to N_ONLINE.
Signed-off-by: NChristoph Lameter <clameter@sgi.com>
Signed-off-by: NJes Sorensen <jes@sgi.com>
Acked-by: NLee Schermerhorn <lee.schermerhorn@hp.com>
Acked-by: NBob Picco <bob.picco@hp.com>
Cc: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Mel Gorman <mel@skynet.ie>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 f64dc58c
...@@ -196,7 +196,7 @@ unsigned long uncached_alloc_page(int starting_nid) ...@@ -196,7 +196,7 @@ unsigned long uncached_alloc_page(int starting_nid)
nid = starting_nid; nid = starting_nid;
do { do {
if (!node_online(nid)) if (!node_state(nid, N_HIGH_MEMORY))
continue; continue;
uc_pool = &uncached_pools[nid]; uc_pool = &uncached_pools[nid];
if (uc_pool->pool == NULL) if (uc_pool->pool == NULL)
...@@ -268,7 +268,7 @@ static int __init uncached_init(void) ...@@ -268,7 +268,7 @@ static int __init uncached_init(void)
{ {
int nid; int nid;
for_each_online_node(nid) { for_each_node_state(nid, N_ONLINE) {
uncached_pools[nid].pool = gen_pool_create(PAGE_SHIFT, nid); uncached_pools[nid].pool = gen_pool_create(PAGE_SHIFT, nid);
mutex_init(&uncached_pools[nid].add_chunk_mutex); mutex_init(&uncached_pools[nid].add_chunk_mutex);
} }
......
...@@ -362,7 +362,7 @@ mspec_init(void) ...@@ -362,7 +362,7 @@ mspec_init(void)
is_sn2 = 1; is_sn2 = 1;
if (is_shub2()) { if (is_shub2()) {
ret = -ENOMEM; ret = -ENOMEM;
for_each_online_node(nid) { for_each_node_state(nid, N_ONLINE) {
int actual_nid; int actual_nid;
int nasid; int nasid;
unsigned long phys; unsigned long phys;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册