[PATCH] x86-64: Support dualcore and 8 socket systems in k8 fallback node parsing
authorAndi Kleen <ak@suse.de>
Mon, 12 Sep 2005 16:49:24 +0000 (18:49 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 12 Sep 2005 17:49:56 +0000 (10:49 -0700)
commit3f098c2605bdf50176b26f4fa724e9b9c99e5242
treed4632bc555c52afed6ae4c0444659dca49e3e406
parentb91691164be174b780f5c1bb145a7ab5d33fce2f
[PATCH] x86-64: Support dualcore and 8 socket systems in k8 fallback node parsing

In particular on systems where the local APIC space and node space
is very different from the Linux CPU number space.

Previously the older NUMA setup code directly parsing the K8
northbridge registers had some issues on 8 socket or dual core
systems. This patch fixes them.

This is mainly done by fixing some confusion between Linux
CPU numbers and local APIC ids. We now pass the local APIC IDs
to later code, which avoids mismatches.

Also add some heuristics to detect cases where the Hypertransport
nodeids and the local APIC IDs don't match, but are shifted
by a constant offset.

This is still all quite hackish, hopefully BIOS writers fill
in correct SRATs instead.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/kernel/setup.c
arch/x86_64/mm/k8topology.c
arch/x86_64/mm/numa.c
include/asm-x86_64/apicdef.h