Currently vmalloc may be used for allocating zone wait table. Use virtual compound page in order to be able to use a physically contiguous page that can then use the large kernel TLBs. Drawback: The zone wait table is rounded up to the next power of two which may cost some memory. Signed-off-by: Christoph Lameter --- mm/page_alloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: linux-2.6.25-rc5-mm1/mm/page_alloc.c =================================================================== --- linux-2.6.25-rc5-mm1.orig/mm/page_alloc.c 2008-03-20 20:03:50.885900600 -0700 +++ linux-2.6.25-rc5-mm1/mm/page_alloc.c 2008-03-20 20:04:43.282104684 -0700 @@ -2866,7 +2866,8 @@ int zone_wait_table_init(struct zone *zo * To use this new node's memory, further consideration will be * necessary. */ - zone->wait_table = vmalloc(alloc_size); + zone->wait_table = __alloc_vcompound(GFP_KERNEL, + get_order(alloc_size)); } if (!zone->wait_table) return -ENOMEM; -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/