We _know_ which node pages in general belong to, at least at a
very gross level in node_{start,end}_pfn[].  Use those to target
the allocations of pages.

Signed-off-by: Andy Whitcroft <[EMAIL PROTECTED]>
Signed-off-by: Dave Hansen <[EMAIL PROTECTED]>
---

 arch/ia64/mm/numa.c                      |    0 
 memhotplug-dave/arch/i386/mm/discontig.c |   15 +++++++++++++++
 2 files changed, 15 insertions(+)

diff -puN arch/i386/mm/discontig.c~B-sparse-130-add-early_pfn_to_nid 
arch/i386/mm/discontig.c
--- memhotplug/arch/i386/mm/discontig.c~B-sparse-130-add-early_pfn_to_nid       
2005-03-14 11:52:51.000000000 -0800
+++ memhotplug-dave/arch/i386/mm/discontig.c    2005-03-14 11:52:51.000000000 
-0800
@@ -149,6 +149,21 @@ static void __init find_max_pfn_node(int
                BUG();
 }
 
+/* Find the owning node for a pfn. */
+int early_pfn_to_nid(unsigned long pfn)
+{
+       int nid;
+
+       for_each_node(nid) {
+               if (node_end_pfn[nid] == 0)
+                       break;
+               if (node_start_pfn[nid] <= pfn && node_end_pfn[nid] >= pfn)
+                       return nid;
+       }
+
+       return 0;
+}
+
 /* 
  * Allocate memory for the pg_data_t for this node via a crude pre-bootmem
  * method.  For node zero take this from the bottom of memory, for
diff -puN arch/ppc64/mm/numa.c~B-sparse-130-add-early_pfn_to_nid 
arch/ppc64/mm/numa.c
diff -puN arch/ia64/mm/numa.c~B-sparse-130-add-early_pfn_to_nid 
arch/ia64/mm/numa.c
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to