summaryrefslogtreecommitdiffstats
path: root/mm/sparse.c
diff options
context:
space:
mode:
authorYasunori Goto <y-goto@jp.fujitsu.com>2006-10-28 10:38:32 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-28 11:30:52 -0700
commitf2d0aa5bf8d4f7ae4cb1a7feebf5b1afddd0b9b0 (patch)
treef018b4472a40d6ed1d815b68a716f29991993aba /mm/sparse.c
parent969b755aadf7bcf3df5991a127a103acd0145a52 (diff)
downloadkernel-crypto-f2d0aa5bf8d4f7ae4cb1a7feebf5b1afddd0b9b0.tar.gz
kernel-crypto-f2d0aa5bf8d4f7ae4cb1a7feebf5b1afddd0b9b0.tar.xz
kernel-crypto-f2d0aa5bf8d4f7ae4cb1a7feebf5b1afddd0b9b0.zip
[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 <y-goto@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/sparse.c')
-rw-r--r--mm/sparse.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/sparse.c b/mm/sparse.c
index 86c52ab8087..b3c82ba3001 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;