1#ifndef _LINUX_SCHED_NOHZ_H 2#define _LINUX_SCHED_NOHZ_H 3 4/* 5 * This is the interface between the scheduler and nohz/dynticks: 6 */ 7 8#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ_COMMON) 9extern void cpu_load_update_nohz_start(void); 10extern void cpu_load_update_nohz_stop(void); 11#else 12static inline void cpu_load_update_nohz_start(void) { } 13static inline void cpu_load_update_nohz_stop(void) { } 14#endif 15 16#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ_COMMON) 17extern void nohz_balance_enter_idle(int cpu); 18extern void set_cpu_sd_state_idle(void); 19extern int get_nohz_timer_target(void); 20#else 21static inline void nohz_balance_enter_idle(int cpu) { } 22static inline void set_cpu_sd_state_idle(void) { } 23#endif 24 25#ifdef CONFIG_NO_HZ_COMMON 26void calc_load_nohz_start(void); 27void calc_load_nohz_stop(void); 28#else 29static inline void calc_load_nohz_start(void) { } 30static inline void calc_load_nohz_stop(void) { } 31#endif /* CONFIG_NO_HZ_COMMON */ 32 33#if defined(CONFIG_NO_HZ_COMMON) && defined(CONFIG_SMP) 34extern void wake_up_nohz_cpu(int cpu); 35#else 36static inline void wake_up_nohz_cpu(int cpu) { } 37#endif 38 39#ifdef CONFIG_NO_HZ_FULL 40extern u64 scheduler_tick_max_deferment(void); 41#endif 42 43#endif /* _LINUX_SCHED_NOHZ_H */ 44