[PATCH] convert i386 Summit subarch to use SRAT info for apicid_to_node calls
authorkeith mannthey <kmannth@us.ibm.com>
Fri, 29 Sep 2006 08:58:46 +0000 (01:58 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 29 Sep 2006 16:18:03 +0000 (09:18 -0700)
commit3b08606dc2991bcdab14139efd9ed9d492f5f901
treec225c9fc5a7b3cdfe516c4279f77e40068396162
parent3528a95322b5c1ce882ab723f175a1845430cd89
[PATCH] convert i386 Summit subarch to use SRAT info for apicid_to_node calls

Convert the i386 summit subarch apicid_to_node to use node information
provided by the SRAT.  It was discussed a little on LKML a few weeks ago
and was seen as an acceptable fix.  The current way of obtaining the nodeid

 static inline int apicid_to_node(int logical_apicid)
 {
   return logical_apicid >> 5;
 }

is just not correct for all summit systems/bios.  Assuming the apicid
matches the Linux node number require a leap of faith that the bios mapped
out the apicids a set way.  Modern summit HW (IBM x460) does not layout its
bios in the manner for various reasons and is unable to boot i386 numa.

The best way to get the correct apicid to node information is from the SRAT
table during boot.  It lays out what apicid belongs to what node.  I use
this information to create a table for use at run time.

Signed-off-by: Keith Mannthey <kmannth@us.ibm.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/smpboot.c
arch/i386/kernel/srat.c
include/asm-i386/mach-summit/mach_apic.h
include/asm-i386/smp.h