lkml.org 
[lkml]   [2008]   [Feb]   [21]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateThu, 21 Feb 2008 02:58:44 -0800
FromYinghai Lu <>
Subject[PATCH] x86_64: make amd quad core 8 socket system not be clustered_box
quad core 8 socket system will have apic id lifting.the apic id range could
be [4, 0x23]. or [8, 0x27]. apic_is_clustered_box will think that need to three clusters
and that is large than 2. So it is treated as clustered_box.

and will get

Marking TSC unstable due to TSCs unsynchronized

even the CPUs have X86_FEATURE_CONSTANT_TSC set.

this patch offset back the apic before get apic clusterid.

or use dmi to get apic_is_clustered?

Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>

diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index 9b2be3d..5bdf1bc 100644
--- a/arch/x86/kernel/apic_64.c
+++ b/arch/x86/kernel/apic_64.c
@@ -1223,8 +1223,11 @@ __cpuinit int apic_is_clustered_box(void)
 		else
 			break;
 
-		if (id != BAD_APICID)
+		if (id != BAD_APICID) {
+			if (id >= boot_cpu_id)
+				id -= boot_cpu_id;
 			__set_bit(APIC_CLUSTERID(id), clustermap);
+		}
 	}
 
 	/* Problem:  Partially populated chassis may not have CPUs in some of

\
 
 \ /
  Last update: 2008-02-21 11:53    [from the cache]
©2003-2008