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 allocationis. Signed-off-by: Christoph Lameter Index: linux-2.6.18-rc1/arch/ia64/kernel/uncached.c =================================================================== --- linux-2.6.18-rc1.orig/arch/ia64/kernel/uncached.c 2006-07-05 21:09:49.000000000 -0700 +++ linux-2.6.18-rc1/arch/ia64/kernel/uncached.c 2006-07-12 15:37:10.490552645 -0700 @@ -81,7 +81,8 @@ static int uncached_add_chunk(struct gen /* attempt to allocate a granule's worth of cached memory pages */ - page = alloc_pages_node(nid, GFP_KERNEL | __GFP_ZERO, + page = alloc_pages_node(nid, GFP_KERNEL | __GFP_ZERO | + __GFP_THISNODE | __GFP_NORETRY | __GFP_NOWARN, IA64_GRANULE_SHIFT-PAGE_SHIFT); if (!page) return -1;