Messages in this thread Patch in this message | | | Date | Wed, 4 Feb 2009 17:09:44 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | [PATCH] use __GFP_NOWARN in page cgroup allocation |
| |
This was recommended in "kmalloc-return-null-instead-of-link-failure.patch added to -mm tree" thread in the last month. Thanks, -Kame = From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
page_cgroup's page allocation at init/memory hotplug uses kmalloc() and vmalloc(). If kmalloc() failes, vmalloc() is used.
This is because vmalloc() is very limited resource on 32bit systems. We want to use kmalloc() first.
But in this kind of call, __GFP_NOWARN should be specified.
Reported-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> --- Index: mmotm-2.6.29-Feb03/mm/page_cgroup.c =================================================================== --- mmotm-2.6.29-Feb03.orig/mm/page_cgroup.c +++ mmotm-2.6.29-Feb03/mm/page_cgroup.c @@ -114,7 +114,8 @@ static int __init_refok init_section_pag nid = page_to_nid(pfn_to_page(pfn)); table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; if (slab_is_available()) { - base = kmalloc_node(table_size, GFP_KERNEL, nid); + base = kmalloc_node(table_size, + GFP_KERNEL | __GFP_NOWARN, nid); if (!base) base = vmalloc_node(table_size, nid); } else {
| |