提交 1d8bf926 编写于 作者: Z zijun_hu 提交者: Linus Torvalds

mm/bootmem.c: replace kzalloc() by kzalloc_node()

In ___alloc_bootmem_node_nopanic(), replace kzalloc() by kzalloc_node()
in order to allocate memory within given node preferentially when slab
is available

Link: http://lkml.kernel.org/r/1f487f12-6af4-5e4f-a28c-1de2361cdcd8@zoho.comSigned-off-by: Nzijun_hu <zijun_hu@htc.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 2382705f
...@@ -11,15 +11,12 @@ ...@@ -11,15 +11,12 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/pfn.h> #include <linux/pfn.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/bootmem.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/kmemleak.h> #include <linux/kmemleak.h>
#include <linux/range.h> #include <linux/range.h>
#include <linux/memblock.h>
#include <linux/bug.h> #include <linux/bug.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/bootmem.h>
#include <asm/processor.h>
#include "internal.h" #include "internal.h"
...@@ -712,7 +709,7 @@ void * __init ___alloc_bootmem_node_nopanic(pg_data_t *pgdat, ...@@ -712,7 +709,7 @@ void * __init ___alloc_bootmem_node_nopanic(pg_data_t *pgdat,
void *ptr; void *ptr;
if (WARN_ON_ONCE(slab_is_available())) if (WARN_ON_ONCE(slab_is_available()))
return kzalloc(size, GFP_NOWAIT); return kzalloc_node(size, GFP_NOWAIT, pgdat->node_id);
again: again:
/* do not panic in alloc_bootmem_bdata() */ /* do not panic in alloc_bootmem_bdata() */
...@@ -738,9 +735,6 @@ void * __init ___alloc_bootmem_node_nopanic(pg_data_t *pgdat, ...@@ -738,9 +735,6 @@ void * __init ___alloc_bootmem_node_nopanic(pg_data_t *pgdat,
void * __init __alloc_bootmem_node_nopanic(pg_data_t *pgdat, unsigned long size, void * __init __alloc_bootmem_node_nopanic(pg_data_t *pgdat, unsigned long size,
unsigned long align, unsigned long goal) unsigned long align, unsigned long goal)
{ {
if (WARN_ON_ONCE(slab_is_available()))
return kzalloc_node(size, GFP_NOWAIT, pgdat->node_id);
return ___alloc_bootmem_node_nopanic(pgdat, size, align, goal, 0); return ___alloc_bootmem_node_nopanic(pgdat, size, align, goal, 0);
} }
...@@ -812,10 +806,6 @@ void * __init __alloc_bootmem_node_high(pg_data_t *pgdat, unsigned long size, ...@@ -812,10 +806,6 @@ void * __init __alloc_bootmem_node_high(pg_data_t *pgdat, unsigned long size,
} }
#ifndef ARCH_LOW_ADDRESS_LIMIT
#define ARCH_LOW_ADDRESS_LIMIT 0xffffffffUL
#endif
/** /**
* __alloc_bootmem_low - allocate low boot memory * __alloc_bootmem_low - allocate low boot memory
* @size: size of the request in bytes * @size: size of the request in bytes
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册