linux/arch/i386
Thomas Gleixner ca1b940ce6 [PATCH] i386: trust the PM-Timer calibration of the local APIC timer
When PM-Timer is available for local APIC timer calibration we can skip the
verification of the calibrated time value.  The resulting error is quite
small on a bunch of evaluated platforms and is less harming than the
observed false positives.

We need to keep the verification on systems, which have no PM-Timer to
avoid bogus local APIC timer calibrations in the range of factor 2-10,
which can be observed when swicthing off the PM-timer support in the kernel
configuration.

The wrong calibration values are probably caused by SMM code trying to
emulate a PS/2 keyboard from a (maybe connected or not) USB keyboard.  This
prohibits the accurate delivery of PIT interrupts, which are used to
calibrate the local APIC timer.  Unfortunately we have no way to disable
this BIOS misfeature in the early boot process.

Add also the dropped cpu_relax() back to the wait loops.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-03-18 11:35:08 -07:00
..
boot Use ARRAY_SIZE() macro in i386 relocs.c file 2007-02-17 19:10:01 +01:00
crypto [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
kernel [PATCH] i386: trust the PM-Timer calibration of the local APIC timer 2007-03-18 11:35:08 -07:00
lib {rd,wr}msr_on_cpu SMP=n optimization 2007-02-20 14:29:37 -05:00
mach-default [PATCH] clockevents: i386 drivers 2007-02-16 08:13:59 -08:00
mach-es7000 ACPICA: Remove duplicate table manager 2007-02-02 21:14:28 -05:00
mach-generic [PATCH] i386: make apic probe function non-init 2007-01-11 01:52:44 +01:00
mach-visws [PATCH] visws: sgivwfb as module needs exports 2006-12-08 08:29:07 -08:00
mach-voyager [PATCH] x86: fix PDA variables to work during boot 2007-01-22 19:39:36 -08:00
math-emu [PATCH] i386: avoid gcc extension 2007-02-13 13:26:24 +01:00
mm [PATCH] i386: Remove extern declaration from mm/discontig.c, put in header. 2007-02-13 13:26:26 +01:00
oprofile Replace remaining references to "driverfs" with "sysfs". 2007-02-17 19:13:42 +01:00
pci PCI: add systems for automatic breadth-first device sorting 2007-02-16 15:30:11 -08:00
power Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
defconfig [PATCH] i386: Update defconfig 2007-03-16 21:07:36 +01:00
Kconfig [PATCH] Fix VMI and COMPAT_VDSO for 2.6.21 2007-03-12 16:33:51 -07:00
Kconfig.cpu [PATCH] i386: Remove unused kernel config option X86_XADD 2007-02-13 13:26:25 +01:00
Kconfig.debug [PATCH] i386: Paravirt debug defaults off 2007-02-13 13:26:22 +01:00
Makefile [PATCH] x86: add -freg-struct-return to CFLAGS 2007-02-26 12:53:30 -08:00
Makefile.cpu [PATCH] i386: Add support for compilation for Core2 2006-12-07 02:14:09 +01:00