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