diff options
| author | Christoph Lameter <clameter@sgi.com> | 2006-09-26 02:31:44 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-26 11:48:50 -0400 |
| commit | bd1b1677b5d4f39deda068bf5cc43ce3aaec839f (patch) | |
| tree | 89ac1d663b0c04da52af861e2bc7b0d7e49149f7 | |
| parent | 3d99cfb5f46191fc68f1343feeb2cf835001f7d7 (diff) | |
[PATCH] Guarantee that the uncached allocator gets pages on the correct node
The uncached allocator manages per node pools. Specify __GFP_THISNODE in
order to force allocation on the indicated node or fail. The uncached
allocator has already logic to deal with failing allocations.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | arch/ia64/kernel/uncached.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/ia64/kernel/uncached.c b/arch/ia64/kernel/uncached.c index 4c73a6763669..f813caa80570 100644 --- a/arch/ia64/kernel/uncached.c +++ b/arch/ia64/kernel/uncached.c | |||
| @@ -98,7 +98,8 @@ static int uncached_add_chunk(struct uncached_pool *uc_pool, int nid) | |||
| 98 | 98 | ||
| 99 | /* attempt to allocate a granule's worth of cached memory pages */ | 99 | /* attempt to allocate a granule's worth of cached memory pages */ |
| 100 | 100 | ||
| 101 | page = alloc_pages_node(nid, GFP_KERNEL | __GFP_ZERO, | 101 | page = alloc_pages_node(nid, GFP_KERNEL | __GFP_ZERO | |
| 102 | __GFP_THISNODE | __GFP_NORETRY | __GFP_NOWARN, | ||
| 102 | IA64_GRANULE_SHIFT-PAGE_SHIFT); | 103 | IA64_GRANULE_SHIFT-PAGE_SHIFT); |
| 103 | if (!page) { | 104 | if (!page) { |
| 104 | mutex_unlock(&uc_pool->add_chunk_mutex); | 105 | mutex_unlock(&uc_pool->add_chunk_mutex); |
