On 2026/2/13 0:46, Waiman Long wrote:
> As cpuset is updating HK_TYPE_DOMAIN housekeeping mask when there is
> a change in the set of isolated CPUs, making this change is now more
> costly than before.  Right now, the isolated_cpus_updating flag can be
> set even if there is no real change in isolated_cpus. Put in additional
> checks to make sure that isolated_cpus_updating is set only if there
> is a real change in isolated_cpus.
> 
> Signed-off-by: Waiman Long <[email protected]>
> ---
>  kernel/cgroup/cpuset.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
> index e55855269432..c792380f9b60 100644
> --- a/kernel/cgroup/cpuset.c
> +++ b/kernel/cgroup/cpuset.c
> @@ -1180,11 +1180,15 @@ static void isolated_cpus_update(int old_prs, int 
> new_prs, struct cpumask *xcpus
>       WARN_ON_ONCE(old_prs == new_prs);
>       lockdep_assert_held(&callback_lock);
>       lockdep_assert_held(&cpuset_mutex);
> -     if (new_prs == PRS_ISOLATED)
> +     if (new_prs == PRS_ISOLATED) {
> +             if (cpumask_subset(xcpus, isolated_cpus))
> +                     return;
>               cpumask_or(isolated_cpus, isolated_cpus, xcpus);
> -     else
> +     } else {
> +             if (!cpumask_intersects(xcpus, isolated_cpus))
> +                     return;
>               cpumask_andnot(isolated_cpus, isolated_cpus, xcpus);
> -
> +     }
>       isolated_cpus_updating = true;
>  }
>  

Reviewed-by: Chen Ridong <[email protected]>

-- 
Best regards,
Ridong


Reply via email to