From c317139c3cb461646d30b5950090512e71c2d90d 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.25-rc3-mm1/mm/slub.c =================================================================== --- linux-2.6.25-rc3-mm1.orig/mm/slub.c 2008-03-04 14:16:27.370574131 -0800 +++ linux-2.6.25-rc3-mm1/mm/slub.c 2008-03-04 16:52:46.677119639 -0800 @@ -3380,7 +3380,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;