diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-11-23 12:11:05 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-11-23 12:11:05 +0100 |
commit | 39fcc013ef252b0bf2eecd63433da6ef232910e5 (patch) | |
tree | 89b0bf7b9979e26472bb019847152d5526663831 /xen/arch/x86/mpparse.c | |
parent | 9d401b35f071a91e7281fcdd4a5ceba0dc125ba4 (diff) | |
download | xen-39fcc013ef252b0bf2eecd63433da6ef232910e5.tar.gz xen-39fcc013ef252b0bf2eecd63433da6ef232910e5.tar.bz2 xen-39fcc013ef252b0bf2eecd63433da6ef232910e5.zip |
Intel systems with more than 8 CPUs require that the APIC is configured
in clustered mode with the apic=bigsmp kernel parameter. This patch does
the APIC mode selection automatically without needing to manually specify
the kernel paremeter.
(KAF note: I see the patch is also present in Linux 2.6.14.2)
Signed-off-by: Nitin Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'xen/arch/x86/mpparse.c')
-rw-r--r-- | xen/arch/x86/mpparse.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c index 268c9cdf71..91355de55e 100644 --- a/xen/arch/x86/mpparse.c +++ b/xen/arch/x86/mpparse.c @@ -63,6 +63,8 @@ int nr_ioapics; int pic_mode; unsigned long mp_lapic_addr; +unsigned int def_to_bigsmp; + /* Processor that is doing the boot up */ unsigned int boot_cpu_physical_apicid = -1U; unsigned int boot_cpu_logical_apicid = -1U; @@ -213,6 +215,13 @@ void __init MP_processor_info (struct mpc_config_processor *m) ver = 0x10; } apic_version[m->mpc_apicid] = ver; + if ((num_processors > 8) && + APIC_XAPIC(ver) && + (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)) + def_to_bigsmp = 1; + else + def_to_bigsmp = 0; + bios_cpu_apicid[num_processors - 1] = m->mpc_apicid; } |