• Peter Zijlstra's avatar
    x86/tsc: Introduce early tsc clocksource · aa83c457
    Peter Zijlstra authored
    Without TSC_KNOWN_FREQ the TSC clocksource is registered so late that the
    kernel first switches to the HPET. Using HPET on large CPU count machines is
    undesirable.
    
    Therefore register a tsc-early clocksource using the preliminary tsc_khz
    from quick calibration. Then when the final TSC calibration is done, it
    can switch to the tuned frequency.
    
    The only notably problem is that the real tsc clocksource must be marked
    with CLOCK_SOURCE_VALID_FOR_HRES, otherwise it will not be selected when
    unregistering tsc-early. tsc-early cannot be left registered, because then
    the clocksource code would fall back to it when we tsc clocksource is
    marked unstable later.
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: len.brown@intel.com
    Cc: rui.zhang@intel.com
    Cc: Len Brown <lenb@kernel.org>
    Link: https://lkml.kernel.org/r/20171222092243.431585460@infradead.org
    aa83c457
tsc.c 35.9 KB