aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRavikiran G Thirumalai <kiran@scalex86.org>2008-03-20 03:45:08 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:41:08 -0400
commit1cb68487f5898dd97460e5b6bda9619ec3549361 (patch)
tree84820be42fa1de4339ac14f599fcf7531b1acce0
parent9f6d8552a9cb49dc556777bbdf7ac8b3d7e18edb (diff)
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>
-rw-r--r--arch/x86/kernel/apic_64.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index 868ec1deb19..5362cfd30ec 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)
1209 * will be [4, 0x23] or [8, 0x27] could be thought to 1209 * will be [4, 0x23] or [8, 0x27] could be thought to
1210 * vsmp box still need checking... 1210 * vsmp box still need checking...
1211 */ 1211 */
1212 if (!is_vsmp_box() && (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)) 1212 if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && !is_vsmp_box())
1213 return 0; 1213 return 0;
1214 1214
1215 bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr; 1215 bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr;
@@ -1249,6 +1249,12 @@ __cpuinit int apic_is_clustered_box(void)
1249 ++zeros; 1249 ++zeros;
1250 } 1250 }
1251 1251
1252 /* ScaleMP vSMPowered boxes have one cluster per board and TSCs are
1253 * not guaranteed to be synced between boards
1254 */
1255 if (is_vsmp_box() && clusters > 1)
1256 return 1;
1257
1252 /* 1258 /*
1253 * If clusters > 2, then should be multi-chassis. 1259 * If clusters > 2, then should be multi-chassis.
1254 * May have to revisit this when multi-core + hyperthreaded CPUs come 1260 * May have to revisit this when multi-core + hyperthreaded CPUs come