]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/x86/kernel/cpu/intel.c
x86, numa: Use near(er) online node instead of roundrobin for NUMA
[net-next-2.6.git] / arch / x86 / kernel / cpu / intel.c
index 40e1835b35e881d3479baec9d0bfa7f7ba48da9a..c900b73f92246d77cac96de3f9bd77685cf5d167 100644 (file)
@@ -263,8 +263,12 @@ static void __cpuinit srat_detect_node(struct cpuinfo_x86 *c)
        /* Don't do the funky fallback heuristics the AMD version employs
           for now. */
        node = apicid_to_node[apicid];
-       if (node == NUMA_NO_NODE || !node_online(node))
+       if (node == NUMA_NO_NODE)
                node = first_node(node_online_map);
+       else if (!node_online(node)) {
+               /* reuse the value from init_cpu_to_node() */
+               node = cpu_to_node(cpu);
+       }
        numa_set_node(cpu, node);
 
        printk(KERN_INFO "CPU %d/0x%x -> Node %d\n", cpu, apicid, node);