Re: [PATCH] cgroup/cpuset: Defer sched domain rebuild to common unlock path
From: Guopeng Zhang
Date: Sat Sep 19 2026 - 22:26:37 EST
在 2026/9/18 18:41, Ridong Chen 写道:
>
>
> On 9/18/2026 6:27 PM, Guopeng Zhang wrote:
>> From: Guopeng Zhang <zhangguopeng@xxxxxxxxxx>
>>
>> Both callers of update_prstate(), cpuset_partition_write() and
>> cpuset_css_killed(), call cpuset_update_sd_hk_unlock() immediately
>> afterwards. That helper rebuilds sched domains when force_sd_rebuild is
>> set before releasing the cpuset locks, so the check in update_prstate()
>> is redundant.
>>
>> Commit 3bfe47967191 ("cgroup/cpuset: Move
>> housekeeping_update()/rebuild_sched_domains() together") removed the
>> same check from cpuset_write_resmask(). Remove the remaining one from
>> update_prstate().
>>
>> Signed-off-by: Guopeng Zhang <zhangguopeng@xxxxxxxxxx>
>> ---
>> kernel/cgroup/cpuset.c | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
>> index 8f24171..d58ecf5 100644
>> --- a/kernel/cgroup/cpuset.c
>> +++ b/kernel/cgroup/cpuset.c
>> @@ -3039,8 +3039,6 @@ out:
>> update_partition_sd_lb(cs, old_prs);
>> notify_partition_change(cs, old_prs);
>> - if (force_sd_rebuild)
>> - rebuild_sched_domains_locked();
>> free_tmpmasks(&tmpmask);
>> return 0;
>> }
>
> This title is confusing. I thought you were doing some async work, what does "defer" mean here? In fact, it just removes a piece of redundant code.
>
Thanks for the review.
I misunderstood this. I used "Defer" because the rebuild still happens later in cpuset_update_sd_hk_unlock().
You're right, the title is confusing. I'll fix it in v2.
Thanks,
Guopeng