• Thomas Gleixner's avatar
    [PATCH] i386: trust the PM-Timer calibration of the local APIC timer · ca1b940c
    Thomas Gleixner authored
    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: default avatarThomas Gleixner <tglx@linutronix.de>
    Acked-by: default avatarIngo Molnar <mingo@elte.hu>
    Acked-by: default avatarAndi Kleen <ak@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ca1b940c
apic.c 37.8 KB