]> git.dujemihanovic.xyz Git - linux.git/commit
x86/tsc: Trust initial offset in architectural TSC-adjust MSRs
authorDaniel J Blueman <daniel@quora.org>
Fri, 19 Apr 2024 08:51:46 +0000 (16:51 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 29 Apr 2024 21:27:16 +0000 (23:27 +0200)
commit455f9075f14484f358b3c1d6845b4a438de198a7
treefb947e378f6510de93f072b434e32f640845dd74
parented30a4a51bb196781c8058073ea720133a65596f
x86/tsc: Trust initial offset in architectural TSC-adjust MSRs

When the BIOS configures the architectural TSC-adjust MSRs on secondary
sockets to correct a constant inter-chassis offset, after Linux brings the
cores online, the TSC sync check later resets the core-local MSR to 0,
triggering HPET fallback and leading to performance loss.

Fix this by unconditionally using the initial adjust values read from the
MSRs. Trusting the initial offsets in this architectural mechanism is a
better approach than special-casing workarounds for specific platforms.

Signed-off-by: Daniel J Blueman <daniel@quora.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Steffen Persvold <sp@numascale.com>
Reviewed-by: James Cleverdon <james.cleverdon.external@eviden.com>
Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>
Reviewed-by: Prarit Bhargava <prarit@redhat.com>
Link: https://lore.kernel.org/r/20240419085146.175665-1-daniel@quora.org
arch/x86/kernel/tsc_sync.c