178634061SFrederic Weisbecker #ifndef _LINUX_SCHED_ISOLATION_H 278634061SFrederic Weisbecker #define _LINUX_SCHED_ISOLATION_H 378634061SFrederic Weisbecker 478634061SFrederic Weisbecker #include <linux/cpumask.h> 578634061SFrederic Weisbecker #include <linux/init.h> 678634061SFrederic Weisbecker #include <linux/tick.h> 778634061SFrederic Weisbecker 878634061SFrederic Weisbecker #ifdef CONFIG_NO_HZ_FULL 9*e179f5a0SFrederic Weisbecker DECLARE_STATIC_KEY_FALSE(housekeeping_overriden); 107e56a1cfSFrederic Weisbecker extern int housekeeping_any_cpu(void); 117e56a1cfSFrederic Weisbecker extern const struct cpumask *housekeeping_cpumask(void); 127e56a1cfSFrederic Weisbecker extern void housekeeping_affine(struct task_struct *t); 137e56a1cfSFrederic Weisbecker extern bool housekeeping_test_cpu(int cpu); 1478634061SFrederic Weisbecker extern void __init housekeeping_init(void); 157e56a1cfSFrederic Weisbecker 1678634061SFrederic Weisbecker #else 1778634061SFrederic Weisbecker 189f0ca2d9SFrederic Weisbecker static inline int housekeeping_any_cpu(void) 199f0ca2d9SFrederic Weisbecker { 209f0ca2d9SFrederic Weisbecker return smp_processor_id(); 219f0ca2d9SFrederic Weisbecker } 2278634061SFrederic Weisbecker 2378634061SFrederic Weisbecker static inline const struct cpumask *housekeeping_cpumask(void) 2478634061SFrederic Weisbecker { 2578634061SFrederic Weisbecker return cpu_possible_mask; 2678634061SFrederic Weisbecker } 2778634061SFrederic Weisbecker 287e56a1cfSFrederic Weisbecker static inline void housekeeping_affine(struct task_struct *t) { } 297e56a1cfSFrederic Weisbecker static inline void housekeeping_init(void) { } 307e56a1cfSFrederic Weisbecker #endif /* CONFIG_NO_HZ_FULL */ 317e56a1cfSFrederic Weisbecker 3278634061SFrederic Weisbecker static inline bool is_housekeeping_cpu(int cpu) 3378634061SFrederic Weisbecker { 3478634061SFrederic Weisbecker #ifdef CONFIG_NO_HZ_FULL 35*e179f5a0SFrederic Weisbecker if (static_branch_unlikely(&housekeeping_overriden)) 367e56a1cfSFrederic Weisbecker return housekeeping_test_cpu(cpu); 3778634061SFrederic Weisbecker #endif 3878634061SFrederic Weisbecker return true; 3978634061SFrederic Weisbecker } 4078634061SFrederic Weisbecker 4178634061SFrederic Weisbecker #endif /* _LINUX_SCHED_ISOLATION_H */ 42