linux/arch
Daniel J Blueman af542630b7 x86/tsc: Trust initial offset in architectural TSC-adjust MSRs
commit 455f9075f1 upstream.

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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-06-12 11:02:54 +02:00
..
alpha rtc: Add support for configuring the UIP timeout for RTC reads 2024-01-31 16:17:01 -08:00
arc ARC: [plat-hsdk]: Remove misplaced interrupt-cells property 2024-05-02 16:29:23 +02:00
arm ARM: 9381/1: kasan: clear stale stack poison 2024-05-17 11:56:10 +02:00
arm64 arm64: atomics: lse: remove stale dependency on JUMP_LABEL 2024-05-25 16:21:34 +02:00
csky work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:12:28 +01:00
hexagon hexagon: vmlinux.lds.S: handle attributes section 2024-04-03 15:19:48 +02:00
ia64 ia64/cpu: Switch to arch_cpu_finalize_init() 2023-08-08 20:03:46 +02:00
loongarch LoongArch: Fix access error when read fault on a write-only VMA 2024-05-02 16:29:28 +02:00
m68k m68k: Fix invalid .section syntax 2023-09-13 09:42:21 +02:00
microblaze mm: always expand the stack with the mmap write lock held 2023-07-01 13:16:25 +02:00
mips MIPS: scall: Save thread_info.syscall unconditionally on entry 2024-05-17 11:56:07 +02:00
nios2 mm/fault: convert remaining simple cases to lock_mm_and_find_vma() 2023-07-01 13:16:25 +02:00
openrisc mm: always expand the stack with the mmap write lock held 2023-07-01 13:16:25 +02:00
parisc parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds 2024-04-03 15:19:28 +02:00
powerpc powerpc/pseries/iommu: LPAR panics during boot up with a frozen PE 2024-05-17 11:56:03 +02:00
riscv riscv: Fix TASK_SIZE on 64-bit NOMMU 2024-05-02 16:29:31 +02:00
s390 s390/vdso: Add CFI for RA register to asm macro vdso_func 2024-05-17 11:55:59 +02:00
sh sh: bios: Revive earlyprintk support 2023-11-20 11:52:07 +01:00
sparc sparc32: Fix parport build with sparc32 2024-04-03 15:19:33 +02:00
um um: Fix adding '-no-pie' for clang 2024-02-23 09:12:38 +01:00
x86 x86/tsc: Trust initial offset in architectural TSC-adjust MSRs 2024-06-12 11:02:54 +02:00
xtensa work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:12:28 +01:00
.gitignore
Kconfig cpu: Re-enable CPU mitigations by default for !X86 architectures 2024-05-02 16:29:28 +02:00