cregit-Linux how code gets into the kernel

Release 4.15 arch/x86/include/asm/tsc.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * x86 TSC related functions
 */
#ifndef _ASM_X86_TSC_H

#define _ASM_X86_TSC_H

#include <asm/processor.h>


#define NS_SCALE	10 
/* 2^10, carefully chosen */

#define US_SCALE	32 
/* 2^32, arbitralrily chosen */

/*
 * Standard way to access the cycle counter.
 */

typedef unsigned long long cycles_t;

extern unsigned int cpu_khz;
extern unsigned int tsc_khz;

extern void disable_TSC(void);


static inline cycles_t get_cycles(void) { #ifndef CONFIG_X86_TSC if (!boot_cpu_has(X86_FEATURE_TSC)) return 0; #endif return rdtsc(); }

Contributors

PersonTokensPropCommitsCommitProp
Andres Salomon2172.41%125.00%
Borislav Petkov413.79%125.00%
Glauber de Oliveira Costa310.34%125.00%
Andrew Lutomirski13.45%125.00%
Total29100.00%4100.00%

extern struct system_counterval_t convert_art_to_tsc(u64 art); extern void tsc_early_delay_calibrate(void); extern void tsc_init(void); extern void mark_tsc_unstable(char *reason); extern int unsynchronized_tsc(void); extern int check_tsc_unstable(void); extern void mark_tsc_async_resets(char *reason); extern unsigned long native_calibrate_cpu(void); extern unsigned long native_calibrate_tsc(void); extern unsigned long long native_sched_clock_from_tsc(u64 tsc); extern int tsc_clocksource_reliable; #ifdef CONFIG_X86_TSC extern bool tsc_async_resets; #else # define tsc_async_resets false #endif /* * Boot-time check whether the TSCs are synchronized across * all CPUs/cores: */ #ifdef CONFIG_X86_TSC extern bool tsc_store_and_check_tsc_adjust(bool bootcpu); extern void tsc_verify_tsc_adjust(bool resume); extern void check_tsc_sync_source(int cpu); extern void check_tsc_sync_target(void); #else
static inline bool tsc_store_and_check_tsc_adjust(bool bootcpu) { return false; }

Contributors

PersonTokensPropCommitsCommitProp
Thomas Gleixner13100.00%4100.00%
Total13100.00%4100.00%


static inline void tsc_verify_tsc_adjust(bool resume) { }

Contributors

PersonTokensPropCommitsCommitProp
Thomas Gleixner9100.00%2100.00%
Total9100.00%2100.00%


static inline void check_tsc_sync_source(int cpu) { }

Contributors

PersonTokensPropCommitsCommitProp
Thomas Gleixner9100.00%1100.00%
Total9100.00%1100.00%


static inline void check_tsc_sync_target(void) { }

Contributors

PersonTokensPropCommitsCommitProp
Thomas Gleixner8100.00%1100.00%
Total8100.00%1100.00%

#endif extern int notsc_setup(char *); extern void tsc_save_sched_clock_state(void); extern void tsc_restore_sched_clock_state(void); unsigned long cpu_khz_from_msr(void); #endif /* _ASM_X86_TSC_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Thomas Gleixner11038.73%1339.39%
Andres Salomon7526.41%13.03%
Suresh B. Siddha165.63%26.06%
Mike Travis134.58%13.03%
Andi Kleen103.52%13.03%
Glauber de Oliveira Costa103.52%26.06%
Len Brown93.17%26.06%
Christopher S. Hall82.82%13.03%
Dou Liyang72.46%13.03%
Rusty Russell62.11%13.03%
John Stultz51.76%26.06%
Bin Gao41.41%13.03%
Borislav Petkov41.41%13.03%
H. Peter Anvin31.06%13.03%
Marcelo Tosatti20.70%13.03%
Andrew Lutomirski10.35%13.03%
Greg Kroah-Hartman10.35%13.03%
Total284100.00%33100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.