powerpc/mm: Add better comment on careful_allocation()
authorDave Hansen <dave@linux.vnet.ibm.com>
Tue, 9 Dec 2008 08:21:32 +0000 (08:21 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 8 Jan 2009 05:25:08 +0000 (16:25 +1100)
The behavior in careful_allocation() really confused me
at first.  Add a comment to hopefully make it easier
on the next doofus that looks at it.

Signed-off-by: Dave Hansen <dave@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/mm/numa.c

index cf81049e1e51a0ce98d0ebdf9b7a74d5901de211..213664c9cdcae110aae8fb58016f8df3a14010c4 100644 (file)
@@ -840,8 +840,16 @@ static void __init *careful_allocation(int nid, unsigned long size,
                      size, nid);
 
        /*
-        * If the memory came from a previously allocated node, we must
-        * retry with the bootmem allocator.
+        * We initialize the nodes in numeric order: 0, 1, 2...
+        * and hand over control from the LMB allocator to the
+        * bootmem allocator.  If this function is called for
+        * node 5, then we know that all nodes <5 are using the
+        * bootmem allocator instead of the LMB allocator.
+        *
+        * So, check the nid from which this allocation came
+        * and double check to see if we need to use bootmem
+        * instead of the LMB.  We don't free the LMB memory
+        * since it would be useless.
         */
        new_nid = early_pfn_to_nid(ret >> PAGE_SHIFT);
        if (new_nid < nid) {