patch-2.4.22 linux-2.4.22/arch/x86_64/mm/k8topology.c
Next file: linux-2.4.22/crypto/Config.in
Previous file: linux-2.4.22/arch/x86_64/mm/init.c
Back to the patch index
Back to the overall index
- Lines: 29
- Date:
2003-08-25 04:44:40.000000000 -0700
- Orig file:
linux-2.4.21/arch/x86_64/mm/k8topology.c
- Orig date:
2003-06-13 07:51:32.000000000 -0700
diff -urN linux-2.4.21/arch/x86_64/mm/k8topology.c linux-2.4.22/arch/x86_64/mm/k8topology.c
@@ -176,10 +176,27 @@
}
printk(KERN_INFO "Using node hash shift of %d\n", memnode_shift);
- for_all_nodes(i) {
+ for (i = 0; i < MAXNODE; i++) {
+ if (nodes[i].start != nodes[i].end)
setup_node_bootmem(i, nodes[i].start, nodes[i].end);
}
+ /* There are unfortunately some poorly designed mainboards around
+ that only connect memory to a single CPU. This breaks the 1:1 cpu->node
+ mapping. To avoid this fill in the mapping for all possible
+ CPUs, as the number of CPUs is not known yet.
+ We round robin the existing nodes. */
+ int rr = 0;
+ for (i = 0; i < MAXNODE; i++) {
+ if (nodes[i].start != nodes[i].end)
+ continue;
+ if ((nodes_present >> rr) == 0)
+ rr = 0;
+ rr = ffz(~nodes_present >> rr);
+ PLAT_NODE_DATA(i) = PLAT_NODE_DATA(rr);
+ rr++;
+ }
+
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)