From 6558861e22235daf878a390ac1324dbba587a673 Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 3 Oct 2007 20:42:46 -0700 Subject: [PATCH] vcompound: Fallback for buffer to correlate alloc locations The caller table can get quite large if there are many call sites for a particular slab. Add GFP_FALLBACK allows falling back to vmalloc in case the caller table gets too big and memory is fragmented. Currently we would fail the operation. Signed-off-by: Christoph Lameter --- mm/slub.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2008-02-16 18:30:58.000000000 -0800 +++ linux-2.6/mm/slub.c 2008-02-16 18:57:09.000000000 -0800 @@ -3476,7 +3476,8 @@ static int alloc_loc_track(struct loc_tr order = get_order(sizeof(struct location) * max); - l = (void *)__get_free_pages(flags, order); + l = (void *)__get_free_pages(flags | __GFP_COMP | __GFP_VFALLBACK, + order); if (!l) return 0;