diff options
author | Ravikiran G Thirumalai <kiran@scalex86.org> | 2008-03-20 00:45:08 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 17:41:08 +0200 |
commit | 1cb68487f5898dd97460e5b6bda9619ec3549361 (patch) | |
tree | 84820be42fa1de4339ac14f599fcf7531b1acce0 /arch/x86/kernel/apic_64.c | |
parent | 9f6d8552a9cb49dc556777bbdf7ac8b3d7e18edb (diff) | |
download | op-kernel-dev-1cb68487f5898dd97460e5b6bda9619ec3549361.zip op-kernel-dev-1cb68487f5898dd97460e5b6bda9619ec3549361.tar.gz |
x86: apic_is_clustered_box to indicate unsynched TSC's on multiboard vSMP systems
Indicate TSCs are unreliable as time sources if the platform is
a multi chassi ScaleMP vSMPowered machine.
Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic_64.c')
-rw-r--r-- | arch/x86/kernel/apic_64.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c index 868ec1d..5362cfd 100644 --- a/arch/x86/kernel/apic_64.c +++ b/arch/x86/kernel/apic_64.c @@ -1209,7 +1209,7 @@ __cpuinit int apic_is_clustered_box(void) * will be [4, 0x23] or [8, 0x27] could be thought to * vsmp box still need checking... */ - if (!is_vsmp_box() && (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)) + if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && !is_vsmp_box()) return 0; bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr; @@ -1249,6 +1249,12 @@ __cpuinit int apic_is_clustered_box(void) ++zeros; } + /* ScaleMP vSMPowered boxes have one cluster per board and TSCs are + * not guaranteed to be synced between boards + */ + if (is_vsmp_box() && clusters > 1) + return 1; + /* * If clusters > 2, then should be multi-chassis. * May have to revisit this when multi-core + hyperthreaded CPUs come |