[PATCH 0/2] Fix TSC ADJUST breakage causing TSC failure

From: Mike Travis
Date: Tue Oct 02 2018 - 13:59:18 EST



Fix a breakage caused by enabling early tsc initialization which bypasses
a check that disables the forcing of TSC ADJUST to 0 for chassis 0.
This is common on systems where all the chassis start up asynchronously
so which chassis should have a TSC ADJUST value of 0 is not predictable.

The solution is to add a check earlier than this early tsc init to
disable the potential of it incorrectly adjusting TSC ADJUST values that
are already correctly initialized.

* Patch 1 adds an early callable function (after efi_init) that will
check if this system might be a UV system.

* Patch 2 adds code to tsc_early_init() which disables adjusting the
TSC ADJUST value if it's a UV system. This allows the later tsc_init
function to test the tsc_async_resets flag that indicates the system
chassis start up asynchronously, so which chassis should have a TSC
ADJUST value of 0 is not predictable. Further references are in
the patch.

--