Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#ifndef _LINUX_SCHED_NOHZ_H
2#define _LINUX_SCHED_NOHZ_H
3
4/*
5 * This is the interface between the scheduler and nohz/dyntics:
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_enter_idle(void);
27void calc_load_exit_idle(void);
28#else
29static inline void calc_load_enter_idle(void) { }
30static inline void calc_load_exit_idle(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 */