[Patch] 3/5 in support of hot-add memory x86_64 arch_find_nodex86_64

From: keith mannthey
Date: Fri Jul 28 2006 - 22:51:07 EST


Hello all
This is a enablement of the generic arch_find_node for x86_64. It uses
the nodes_add date collected from the SRAT to do it's lookup.

I suspect and i386 version will be needed when I get to that arch with
my work.

This was built against 2.6.18-rc2.

Signed-off-by: Keith Mannthey <kmannth@xxxxxxxxxx>
diff -urN orig/arch/x86_64/Kconfig work/arch/x86_64/Kconfig
--- orig/arch/x86_64/Kconfig 2006-07-28 13:57:35.000000000 -0400
+++ work/arch/x86_64/Kconfig 2006-07-28 21:20:16.000000000 -0400
@@ -343,6 +343,10 @@
def_bool y
depends on MEMORY_HOTPLUG

+config ARCH_FIND_NODE
+ def_bool y
+ depends on MEMORY_HOTPLUG
+
config ARCH_FLATMEM_ENABLE
def_bool y
depends on !NUMA
diff -urN orig/arch/x86_64/mm/srat.c work/arch/x86_64/mm/srat.c
--- orig/arch/x86_64/mm/srat.c 2006-07-28 13:57:35.000000000 -0400
+++ work/arch/x86_64/mm/srat.c 2006-07-28 21:19:01.000000000 -0400
@@ -450,3 +450,15 @@
}

EXPORT_SYMBOL(__node_distance);
+
+int arch_find_node(unsigned long start, unsigned long size)
+{
+ int i, ret = 0;
+ unsigned long end = start+size;
+
+ for_each_node(i) {
+ if (nodes_add[i].start <= start && nodes_add[i].end >= end)
+ ret = i;
+ }
+ return ret;
+}