1
linux/arch
john stultz 3f4a0b917c [PATCH] i386 Time: Avoid PIT SMP lockups
Avoid possible PIT livelock issues seen on SMP systems (and reported by
Andi), by not allowing it as a clocksource on SMP boxes.

However, since the PIT may no longer be present, we have to properly handle
the cases where SMP systems have TSC skew and fall back from the TSC.
Since the PIT isn't there, it would "fall back" to the TSC again.  So this
changes the jiffies rating to 1, and the TSC-bad rating value to 0.

Thus you will get the following behavior priority on i386 systems:

tsc		[if present & stable]
hpet		[if present]
cyclone		[if present]
acpi_pm		[if present]
pit		[if UP]
jiffies

Rather then the current more complicated:
tsc		[if present & stable]
hpet		[if present]
cyclone		[if present]
acpi_pm		[if present]
pit		[if cpus < 4]
tsc		[if present & unstable]
jiffies

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-17 08:18:42 -07:00
..
alpha [PATCH] fixing includes in alpha_ksyms.c 2006-10-12 12:25:27 -07:00
arm [PATCH] remove bogus arch-specific syscall exports 2006-10-11 11:17:07 -07:00
arm26 [PATCH] remove bogus arch-specific syscall exports 2006-10-11 11:17:07 -07:00
avr32 [PATCH] IRQ: Fix AVR32 breakage 2006-10-11 11:14:14 -07:00
cris more misc typo fixes 2006-10-03 22:34:14 +02:00
frv IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
h8300 Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
i386 [PATCH] i386 Time: Avoid PIT SMP lockups 2006-10-17 08:18:42 -07:00
ia64 [PATCH] mm: use symbolic names instead of indices for zone initialisation 2006-10-11 11:14:14 -07:00
m32r [PATCH] m32r: more __user annotations 2006-10-11 11:17:06 -07:00
m68k [PATCH] clean m68k ksyms 2006-10-11 11:17:06 -07:00
m68knommu [PATCH] m68knommu: sync syscalls with m68k 2006-10-13 08:35:39 -07:00
mips [MIPS] Pass NULL not 0 for pointer value. 2006-10-11 19:31:00 +01:00
parisc [PATCH] remove bogus arch-specific syscall exports 2006-10-11 11:17:07 -07:00
powerpc [PATCH] mm: use symbolic names instead of indices for zone initialisation 2006-10-11 11:14:14 -07:00
ppc [PATCH] mm: use symbolic names instead of indices for zone initialisation 2006-10-11 11:14:14 -07:00
s390 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2006-10-11 11:20:11 -07:00
sh sh: SH-4A UBC support 2006-10-12 12:16:13 +09:00
sh64 fix file specification in comments 2006-10-03 23:01:26 +02:00
sparc [SPARC32]: Fix sparc32 modpost warnings. 2006-10-11 23:56:54 -07:00
sparc64 [SPARC32]: Fix sparc32 modpost warnings with sunzilog 2006-10-11 23:56:53 -07:00
um [PATCH] make UML compile (FC6/x86-64) 2006-10-15 14:18:39 -07:00
v850 Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
x86_64 ACPI: Processor native C-states using MWAIT 2006-10-14 00:35:39 -04:00
xtensa fix file specification in comments 2006-10-03 23:01:26 +02:00