• Mike Travis's avatar
    x86/tsc: Fix UV TSC initialization · 2647c43c
    Mike Travis authored
    The recent rework of the TSC calibration code introduced a regression on UV
    systems as it added a call to tsc_early_init() which initializes the TSC
    ADJUST values before acpi_boot_table_init().  In the case of UV systems,
    that is a necessary step that calls uv_system_init().  This informs
    tsc_sanitize_first_cpu() that the kernel runs on a platform with async TSC
    resets as documented in commit 341102c3 ("x86/tsc: Add option that TSC
    on Socket 0 being non-zero is valid")
    
    Fix it by skipping the early tsc initialization on UV systems and let TSC
    init tests take place later in tsc_init().
    
    Fixes: cf7a63ef ("x86/tsc: Calibrate tsc only once")
    Suggested-by: default avatarHedi Berriche <hedi.berriche@hpe.com>
    Signed-off-by: default avatarMike Travis <mike.travis@hpe.com>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Reviewed-by: default avatarRuss Anderson <rja@hpe.com>
    Reviewed-by: default avatarDimitri Sivanich <sivanich@hpe.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Russ Anderson <russ.anderson@hpe.com>
    Cc: Dimitri Sivanich <dimitri.sivanich@hpe.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Kate Stewart <kstewart@linuxfoundation.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Philippe Ombredanne <pombredanne@nexb.com>
    Cc: Pavel Tatashin <pasha.tatashin@oracle.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Len Brown <len.brown@intel.com>
    Cc: Dou Liyang <douly.fnst@cn.fujitsu.com>
    Cc: Xiaoming Gao <gxm.linux.kernel@gmail.com>
    Cc: Rajvi Jingar <rajvi.jingar@intel.com>
    Link: https://lkml.kernel.org/r/20181002180144.923579706@stormcage.americas.sgi.com
    2647c43c
tsc.c 38.3 KB