From: Yasunori Goto Date: Sat, 28 Oct 2006 17:38:32 +0000 (-0700) Subject: [PATCH] memory hotplug: __GFP_NOWARN is better for __kmalloc_section_memmap() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=f2d0aa5bf8d4f7ae4cb1a7feebf5b1afddd0b9b0;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [PATCH] memory hotplug: __GFP_NOWARN is better for __kmalloc_section_memmap() Add __GFP_NOWARN flag to calling of __alloc_pages() in __kmalloc_section_memmap(). It can reduce noisy failure message. In ia64, section size is 1 GB, this means that order 8 pages are necessary for each section's memmap. It is often very hard requirement under heavy memory pressure as you know. So, __alloc_pages() gives up allocation and shows many noisy stack traces which means no page for each sections. (Current my environment shows 32 times of stack trace....) But, __kmalloc_section_memmap() calls vmalloc() after failure of it, and it can succeed allocation of memmap. So, its stack trace warning becomes just noisy. I suppose it shouldn't be shown. Signed-off-by: Yasunori Goto Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/mm/sparse.c b/mm/sparse.c index 86c52ab80878..b3c82ba30012 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -211,7 +211,7 @@ static struct page *__kmalloc_section_memmap(unsigned long nr_pages) struct page *page, *ret; unsigned long memmap_size = sizeof(struct page) * nr_pages; - page = alloc_pages(GFP_KERNEL, get_order(memmap_size)); + page = alloc_pages(GFP_KERNEL|__GFP_NOWARN, get_order(memmap_size)); if (page) goto got_map_page;