Skip to content

Commit

Permalink
x86: k8 numa register active regions later
Browse files Browse the repository at this point in the history
Impact: cleanup

don't register early, so we don't need to clear actived regions if it fail
to get node hash shift or wild set in nb config.

also remove nodeids array that is not needed

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Yinghai Lu authored and Ingo Molnar committed Jan 6, 2009
1 parent 238c6d5 commit 40bcc69
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions arch/x86/mm/k8topology_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
unsigned numnodes, cores, bits, apicid_base;
unsigned long prevbase;
struct bootnode nodes[8];
unsigned char nodeids[8];
int i, j, nb, found = 0;
u32 nodeid, reg;

Expand Down Expand Up @@ -110,7 +109,6 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
limit = read_pci_config(0, nb, 1, 0x44 + i*8);

nodeid = limit & 7;
nodeids[i] = nodeid;
if ((base & 3) == 0) {
if (i < numnodes)
printk("Skipping disabled node %d\n", i);
Expand Down Expand Up @@ -179,9 +177,6 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)

nodes[nodeid].start = base;
nodes[nodeid].end = limit;
e820_register_active_regions(nodeid,
nodes[nodeid].start >> PAGE_SHIFT,
nodes[nodeid].end >> PAGE_SHIFT);

prevbase = base;

Expand Down Expand Up @@ -211,12 +206,15 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end)
}

for (i = 0; i < 8; i++) {
if (nodes[i].start != nodes[i].end) {
nodeid = nodeids[i];
for (j = apicid_base; j < cores + apicid_base; j++)
apicid_to_node[(nodeid << bits) + j] = i;
setup_node_bootmem(i, nodes[i].start, nodes[i].end);
}
if (nodes[i].start == nodes[i].end)
continue;

e820_register_active_regions(i,
nodes[i].start >> PAGE_SHIFT,
nodes[i].end >> PAGE_SHIFT);
for (j = apicid_base; j < cores + apicid_base; j++)
apicid_to_node[(i << bits) + j] = i;
setup_node_bootmem(i, nodes[i].start, nodes[i].end);
}

numa_init_array();
Expand Down

0 comments on commit 40bcc69

Please sign in to comment.