diff options
Diffstat (limited to 'include/linux/sched/isolation.h')
-rw-r--r-- | include/linux/sched/isolation.h | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/include/linux/sched/isolation.h b/include/linux/sched/isolation.h index 040df04fa78a..ed935ffc6ffa 100644 --- a/include/linux/sched/isolation.h +++ b/include/linux/sched/isolation.h | |||
@@ -6,46 +6,35 @@ | |||
6 | #include <linux/tick.h> | 6 | #include <linux/tick.h> |
7 | 7 | ||
8 | #ifdef CONFIG_NO_HZ_FULL | 8 | #ifdef CONFIG_NO_HZ_FULL |
9 | extern cpumask_var_t housekeeping_mask; | 9 | extern int housekeeping_any_cpu(void); |
10 | extern const struct cpumask *housekeeping_cpumask(void); | ||
11 | extern void housekeeping_affine(struct task_struct *t); | ||
12 | extern bool housekeeping_test_cpu(int cpu); | ||
10 | extern void __init housekeeping_init(void); | 13 | extern void __init housekeeping_init(void); |
14 | |||
11 | #else | 15 | #else |
12 | static inline void housekeeping_init(void) { } | ||
13 | #endif /* CONFIG_NO_HZ_FULL */ | ||
14 | 16 | ||
15 | static inline int housekeeping_any_cpu(void) | 17 | static inline int housekeeping_any_cpu(void) |
16 | { | 18 | { |
17 | #ifdef CONFIG_NO_HZ_FULL | ||
18 | if (tick_nohz_full_enabled()) | ||
19 | return cpumask_any_and(housekeeping_mask, cpu_online_mask); | ||
20 | #endif | ||
21 | return smp_processor_id(); | 19 | return smp_processor_id(); |
22 | } | 20 | } |
23 | 21 | ||
24 | static inline const struct cpumask *housekeeping_cpumask(void) | 22 | static inline const struct cpumask *housekeeping_cpumask(void) |
25 | { | 23 | { |
26 | #ifdef CONFIG_NO_HZ_FULL | ||
27 | if (tick_nohz_full_enabled()) | ||
28 | return housekeeping_mask; | ||
29 | #endif | ||
30 | return cpu_possible_mask; | 24 | return cpu_possible_mask; |
31 | } | 25 | } |
32 | 26 | ||
27 | static inline void housekeeping_affine(struct task_struct *t) { } | ||
28 | static inline void housekeeping_init(void) { } | ||
29 | #endif /* CONFIG_NO_HZ_FULL */ | ||
30 | |||
33 | static inline bool is_housekeeping_cpu(int cpu) | 31 | static inline bool is_housekeeping_cpu(int cpu) |
34 | { | 32 | { |
35 | #ifdef CONFIG_NO_HZ_FULL | 33 | #ifdef CONFIG_NO_HZ_FULL |
36 | if (tick_nohz_full_enabled()) | 34 | if (tick_nohz_full_enabled()) |
37 | return cpumask_test_cpu(cpu, housekeeping_mask); | 35 | return housekeeping_test_cpu(cpu); |
38 | #endif | 36 | #endif |
39 | return true; | 37 | return true; |
40 | } | 38 | } |
41 | 39 | ||
42 | static inline void housekeeping_affine(struct task_struct *t) | ||
43 | { | ||
44 | #ifdef CONFIG_NO_HZ_FULL | ||
45 | if (tick_nohz_full_enabled()) | ||
46 | set_cpus_allowed_ptr(t, housekeeping_mask); | ||
47 | |||
48 | #endif | ||
49 | } | ||
50 | |||
51 | #endif /* _LINUX_SCHED_ISOLATION_H */ | 40 | #endif /* _LINUX_SCHED_ISOLATION_H */ |