On 2/3/23 18:24, Frederic Weisbecker wrote:
Provide this new API to check if a CPU has been isolated either through
isolcpus= or nohz_full= kernel parameter.
It aims at avoiding kernel load deemed to be safely spared on CPUs
running sensitive workload that can't bear any disturbance, such as
pcp cache draining.
Suggested-by: Michal Hocko <mhocko@xxxxxxxx>
Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
---
include/linux/sched/isolation.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/linux/sched/isolation.h b/include/linux/sched/isolation.h
index b645cc81fe01..088672f08469 100644
--- a/include/linux/sched/isolation.h
+++ b/include/linux/sched/isolation.h
@@ -53,4 +53,10 @@ static inline bool housekeeping_cpu(int cpu, enum hk_type type)
return true;
}
+static inline bool cpu_is_isolated(int cpu)
+{
+ return !housekeeping_test_cpu(cpu, HK_TYPE_DOMAIN) ||
+ !housekeeping_test_cpu(cpu, HK_TYPE_KERNEL_NOISE);
+}
+
#endif /* _LINUX_SCHED_ISOLATION_H */
CPUs in an isolated cpuset partition is similar to HK_TYPE_DOMAIN CPUs
as load balancing is disabled. I can add an API to access the cpumask
and add to this API. However, that list is dynamic as it can be changed
at run time. Will that be a problem? Or should that be used separately?
Cheers,
Longman