x86: don't clear nodes_states[N_NORMAL_MEMORY] when numa is not compiled in
authorYinghai Lu <yinghai@kernel.org>
Wed, 8 Jul 2009 16:50:19 +0000 (09:50 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 Jul 2009 17:32:50 +0000 (10:32 -0700)
Alex found that specjbb2005 still can not run with hugepages on an
x86-64 machine.  This only happens when numa is not compiled in.

The root cause: node_set_state will not set it back for us in that case,
so don't clear that when numa is not select in config

[ v2: use node_clear_state instead ]
Reported-and-Tested-by: Alex Shi <alex.shi@intel.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Reviewed-by: Christoph Lameter <cl@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/mm/init_64.c

index b177652..6176fe8 100644 (file)
@@ -598,8 +598,15 @@ void __init paging_init(void)
 
        sparse_memory_present_with_active_regions(MAX_NUMNODES);
        sparse_init();
-       /* clear the default setting with node 0 */
-       nodes_clear(node_states[N_NORMAL_MEMORY]);
+
+       /*
+        * clear the default setting with node 0
+        * note: don't use nodes_clear here, that is really clearing when
+        *       numa support is not compiled in, and later node_set_state
+        *       will not set it back.
+        */
+       node_clear_state(0, N_NORMAL_MEMORY);
+
        free_area_init_nodes(max_zone_pfns);
 }