1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _LINUX_SCHED_NOHZ_H |
3 | #define _LINUX_SCHED_NOHZ_H |
4 | |
5 | /* |
6 | * This is the interface between the scheduler and nohz/dynticks: |
7 | */ |
8 | |
9 | #if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ_COMMON) |
10 | extern void nohz_balance_enter_idle(int cpu); |
11 | extern int get_nohz_timer_target(void); |
12 | #else |
13 | static inline void nohz_balance_enter_idle(int cpu) { } |
14 | #endif |
15 | |
16 | #ifdef CONFIG_NO_HZ_COMMON |
17 | void calc_load_nohz_start(void); |
18 | void calc_load_nohz_remote(struct rq *rq); |
19 | void calc_load_nohz_stop(void); |
20 | #else |
21 | static inline void calc_load_nohz_start(void) { } |
22 | static inline void calc_load_nohz_remote(struct rq *rq) { } |
23 | static inline void calc_load_nohz_stop(void) { } |
24 | #endif /* CONFIG_NO_HZ_COMMON */ |
25 | |
26 | #if defined(CONFIG_NO_HZ_COMMON) && defined(CONFIG_SMP) |
27 | extern void wake_up_nohz_cpu(int cpu); |
28 | #else |
29 | static inline void wake_up_nohz_cpu(int cpu) { } |
30 | #endif |
31 | |
32 | #endif /* _LINUX_SCHED_NOHZ_H */ |
33 | |