cregit-Linux how code gets into the kernel

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

/*
 * 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
Andi Kleen1034.48%228.57%
Andres Salomon827.59%114.29%
Glauber de Oliveira Costa517.24%114.29%
Borislav Petkov413.79%114.29%
Andrew Lutomirski13.45%114.29%
Ingo Molnar13.45%114.29%
Total29100.00%7100.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.29%1237.50%
Andres Salomon6224.60%13.12%
Andi Kleen207.94%39.38%
Suresh B. Siddha166.35%26.25%
Glauber de Oliveira Costa124.76%26.25%
Len Brown93.57%26.25%
Christopher S. Hall83.17%13.12%
Rusty Russell62.38%13.12%
John Stultz51.98%26.25%
Bin Gao41.59%13.12%
Borislav Petkov41.59%13.12%
H. Peter Anvin31.19%13.12%
Marcelo Tosatti20.79%13.12%
Ingo Molnar10.40%13.12%
Andrew Lutomirski10.40%13.12%
Total252100.00%32100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.