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 2007-10-03 20:00:23.000000000 -0700 +++ linux-2.6/mm/slub.c 2007-10-03 20:01:12.000000000 -0700 @@ -3003,7 +3003,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; -- - 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/