mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 04:21:09 -04:00
x86: Inline TSC reads in timekeeping
Avoid the overhead of the indirect call for a single instruction to read the TSC. Signed-off-by: Thomas Gleixner <tglx@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20260224163429.741886362@kernel.org
This commit is contained in:
committed by
Peter Zijlstra
parent
2e27beeb66
commit
b27801189f
@@ -141,6 +141,7 @@ config X86
|
||||
select ARCH_USE_SYM_ANNOTATIONS
|
||||
select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
|
||||
select ARCH_WANT_DEFAULT_BPF_JIT if X86_64
|
||||
select ARCH_WANTS_CLOCKSOURCE_READ_INLINE if X86_64
|
||||
select ARCH_WANTS_DYNAMIC_TASK_STRUCT
|
||||
select ARCH_WANTS_NO_INSTR
|
||||
select ARCH_WANT_GENERAL_HUGETLB
|
||||
|
||||
14
arch/x86/include/asm/clock_inlined.h
Normal file
14
arch/x86/include/asm/clock_inlined.h
Normal file
@@ -0,0 +1,14 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ASM_X86_CLOCK_INLINED_H
|
||||
#define _ASM_X86_CLOCK_INLINED_H
|
||||
|
||||
#include <asm/tsc.h>
|
||||
|
||||
struct clocksource;
|
||||
|
||||
static __always_inline u64 arch_inlined_clocksource_read(struct clocksource *cs)
|
||||
{
|
||||
return (u64)rdtsc_ordered();
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1201,6 +1201,7 @@ static struct clocksource clocksource_tsc = {
|
||||
.mask = CLOCKSOURCE_MASK(64),
|
||||
.flags = CLOCK_SOURCE_IS_CONTINUOUS |
|
||||
CLOCK_SOURCE_VALID_FOR_HRES |
|
||||
CLOCK_SOURCE_CAN_INLINE_READ |
|
||||
CLOCK_SOURCE_MUST_VERIFY |
|
||||
CLOCK_SOURCE_VERIFY_PERCPU,
|
||||
.id = CSID_X86_TSC,
|
||||
|
||||
Reference in New Issue
Block a user