Re: [PATCH 2/2] sched/isolation: Add cpu_is_isolated() API

From: Michal Hocko
Date: Mon Feb 13 2023 - 08:34:34 EST


On Sat 04-02-23 00:24:09, 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>

Is there any locking required? I do not think so as these should be
boot time configured AFAIR. From the discussion around this I have
understood that this might change in the future once cpusets gain a
better isolation support. Maybe this should be documented at this stage?

Thanks!

> ---
> 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 */
> --
> 2.34.1

--
Michal Hocko
SUSE Labs