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