Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Revert "[PATCH] x86_64: Only do the clustered systems have unsynchronized TSC assumption on IBM systems"

This reverts commit 13a229abc25640813f1480c0478dfc6bdbc1c19e.

Quoth Andi:
"After some consideration and feedback from various people it turns
out this wasn't that good an idea. It has some problems and needs
more work. Since it was only an optimization anyways it's best to
just back it out again for now."

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

+4 -22
+3
arch/i386/kernel/acpi/boot.c
··· 44 44 extern int gsi_irq_sharing(int gsi); 45 45 #include <asm/proto.h> 46 46 47 + static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) { return 0; } 48 + 49 + 47 50 #else /* X86 */ 48 51 49 52 #ifdef CONFIG_X86_LOCAL_APIC
+1 -8
arch/x86_64/kernel/apic.c
··· 962 962 irq_exit(); 963 963 } 964 964 965 - int __initdata unsync_tsc_on_multicluster; 966 - 967 965 /* 968 966 * oem_force_hpet_timer -- force HPET mode for some boxes. 969 967 * 970 968 * Thus far, the major user of this is IBM's Summit2 series: 971 969 * 972 - * Some clustered boxes may have unsynced TSC problems if they are 970 + * Clustered boxes may have unsynced TSC problems if they are 973 971 * multi-chassis. Use available data to take a good guess. 974 972 * If in doubt, go HPET. 975 973 */ ··· 976 978 int i, clusters, zeros; 977 979 unsigned id; 978 980 DECLARE_BITMAP(clustermap, NUM_APIC_CLUSTERS); 979 - 980 - /* Only do this check on IBM machines - big Unisys systems 981 - use multiple clusters too, but have synchronized TSC */ 982 - if (!unsync_tsc_on_multicluster) 983 - return 0; 984 981 985 982 bitmap_zero(clustermap, NUM_APIC_CLUSTERS); 986 983
-14
include/asm-x86_64/acpi.h
··· 164 164 165 165 extern int acpi_skip_timer_override; 166 166 167 - extern int unsync_tsc_on_multicluster; 168 - 169 - static inline int acpi_madt_oem_check(char *oem, char *productid) 170 - { 171 - /* Copied from i386. Probably has too many entries. */ 172 - if (!strncmp(oem, "IBM ENSW", 8) && 173 - (!strncmp(productid, "VIGIL SMP", 9) 174 - || !strncmp(productid, "EXA", 3) 175 - || !strncmp(productid, "RUTHLESS SMP", 12))) { 176 - unsync_tsc_on_multicluster = 1; 177 - } 178 - return 0; 179 - } 180 - 181 167 #endif /*__KERNEL__*/ 182 168 183 169 #endif /*_ASM_ACPI_H*/