cregit-Linux how code gets into the kernel

Release 4.14 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_init(void); extern void mark_tsc_unstable(char *reason); extern int unsynchronized_tsc(void); extern int check_tsc_unstable(void); 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; /* * 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 Gleixner9939.13%1240.00%
Andres Salomon7529.64%13.33%
Suresh B. Siddha166.32%26.67%
Andi Kleen103.95%13.33%
Glauber de Oliveira Costa103.95%26.67%
Len Brown93.56%26.67%
Christopher S. Hall83.16%13.33%
Rusty Russell62.37%13.33%
John Stultz51.98%26.67%
Borislav Petkov41.58%13.33%
Bin Gao41.58%13.33%
H. Peter Anvin31.19%13.33%
Marcelo Tosatti20.79%13.33%
Greg Kroah-Hartman10.40%13.33%
Andrew Lutomirski10.40%13.33%
Total253100.00%30100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.