浏览代码

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>
Ravikiran G Thirumalai 17 年之前
父节点
当前提交
1cb68487f5
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      arch/x86/kernel/apic_64.c

+ 7 - 1
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