diff options
author | Mel Gorman <mel@skynet.ie> | 2006-09-27 04:49:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-27 11:26:12 -0400 |
commit | fb01439c5b778d5974a488c5d4fe85e6d0e18a68 (patch) | |
tree | dd5483b2555adbdc51f215fcb010484d423f63a0 /arch/x86_64 | |
parent | 9c7cd6877cf8db15269163deda69392263124c1e (diff) |
[PATCH] Allow an arch to expand node boundaries
Arch-independent zone-sizing determines the size of a node
(pgdat->node_spanned_pages) based on the physical memory that was
registered by the architecture. However, when
CONFIG_MEMORY_HOTPLUG_RESERVE is set, the architecture expects that the
spanned_pages will be much larger and that mem_map will be allocated that
is used lated on memory hot-add.
This patch allows an architecture that sets CONFIG_MEMORY_HOTPLUG_RESERVE
to call push_node_boundaries() which will set the node beginning and end to
at *least* the requested boundary.
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Andi Kleen <ak@muc.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: "Keith Mannthey" <kmannth@gmail.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: 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 'arch/x86_64')
-rw-r--r-- | arch/x86_64/mm/srat.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86_64/mm/srat.c b/arch/x86_64/mm/srat.c index db1b2e11cf8f..f8c04d6935c9 100644 --- a/arch/x86_64/mm/srat.c +++ b/arch/x86_64/mm/srat.c | |||
@@ -324,6 +324,8 @@ acpi_numa_memory_affinity_init(struct acpi_table_memory_affinity *ma) | |||
324 | nd->start, nd->end); | 324 | nd->start, nd->end); |
325 | e820_register_active_regions(node, nd->start >> PAGE_SHIFT, | 325 | e820_register_active_regions(node, nd->start >> PAGE_SHIFT, |
326 | nd->end >> PAGE_SHIFT); | 326 | nd->end >> PAGE_SHIFT); |
327 | push_node_boundaries(node, nd->start >> PAGE_SHIFT, | ||
328 | nd->end >> PAGE_SHIFT); | ||
327 | 329 | ||
328 | #ifdef RESERVE_HOTADD | 330 | #ifdef RESERVE_HOTADD |
329 | if (ma->flags.hot_pluggable && reserve_hotadd(node, start, end) < 0) { | 331 | if (ma->flags.hot_pluggable && reserve_hotadd(node, start, end) < 0) { |