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*7e56a1cfSFrederic Weisbecker extern int housekeeping_any_cpu(void); 10*7e56a1cfSFrederic Weisbecker extern const struct cpumask *housekeeping_cpumask(void); 11*7e56a1cfSFrederic Weisbecker extern void housekeeping_affine(struct task_struct *t); 12*7e56a1cfSFrederic Weisbecker extern bool housekeeping_test_cpu(int cpu); 1378634061SFrederic Weisbecker extern void __init housekeeping_init(void); 14*7e56a1cfSFrederic Weisbecker 1578634061SFrederic Weisbecker #else 1678634061SFrederic Weisbecker 179f0ca2d9SFrederic Weisbecker static inline int housekeeping_any_cpu(void) 189f0ca2d9SFrederic Weisbecker { 199f0ca2d9SFrederic Weisbecker return smp_processor_id(); 209f0ca2d9SFrederic Weisbecker } 2178634061SFrederic Weisbecker 2278634061SFrederic Weisbecker static inline const struct cpumask *housekeeping_cpumask(void) 2378634061SFrederic Weisbecker { 2478634061SFrederic Weisbecker return cpu_possible_mask; 2578634061SFrederic Weisbecker } 2678634061SFrederic Weisbecker 27*7e56a1cfSFrederic Weisbecker static inline void housekeeping_affine(struct task_struct *t) { } 28*7e56a1cfSFrederic Weisbecker static inline void housekeeping_init(void) { } 29*7e56a1cfSFrederic Weisbecker #endif /* CONFIG_NO_HZ_FULL */ 30*7e56a1cfSFrederic Weisbecker 3178634061SFrederic Weisbecker static inline bool is_housekeeping_cpu(int cpu) 3278634061SFrederic Weisbecker { 3378634061SFrederic Weisbecker #ifdef CONFIG_NO_HZ_FULL 3478634061SFrederic Weisbecker if (tick_nohz_full_enabled()) 35*7e56a1cfSFrederic Weisbecker return housekeeping_test_cpu(cpu); 3678634061SFrederic Weisbecker #endif 3778634061SFrederic Weisbecker return true; 3878634061SFrederic Weisbecker } 3978634061SFrederic Weisbecker 4078634061SFrederic Weisbecker #endif /* _LINUX_SCHED_ISOLATION_H */ 41