Linux cgroups development
 help / color / mirror / Atom feed
From: Waiman Long <llong@redhat.com>
To: Chen Ridong <chenridong@huaweicloud.com>,
	tj@kernel.org, hannes@cmpxchg.org, mkoutny@suse.com
Cc: cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
	lujialin4@huawei.com, chenridong@huawei.com
Subject: Re: [PATCH -next 00/21] cpuset: rework local partition logic
Date: Mon, 24 Nov 2025 20:09:31 -0500	[thread overview]
Message-ID: <ca3b31ca-e9c3-41e8-ae88-d4b126f574b3@redhat.com> (raw)
In-Reply-To: <2943236a-bb0e-4417-aee4-31146988709a@huaweicloud.com>

On 11/24/25 7:49 PM, Chen Ridong wrote:
>
> On 2025/11/17 10:46, Chen Ridong wrote:
>> From: Chen Ridong <chenridong@huawei.com>
>>
>> The current local partition implementation consolidates all operations
>> (enable, disable, invalidate, and update) within the large
>> update_parent_effective_cpumask() function, which exceeds 300 lines.
>> This monolithic approach has become increasingly difficult to understand
>> and maintain. Additionally, partition-related fields are updated in
>> multiple locations, leading to redundant code and potential corner case
>> oversights.
>>
>> This patch series refactors the local partition logic by separating
>> operations into dedicated functions: local_partition_enable(),
>> local_partition_disable(), and local_partition_update(), creating
>> symmetry with the existing remote partition infrastructure.
>>
>> The series is organized as follows:
>>
>> 1. Infrastructure Preparation (Patches 1-2):
>>     - Code cleanup and preparation for the refactoring work
>>
>> 2. Introduce partition operation helpers (Patches 3-5):
>>     - Introduce out partition_enable(), partition_disable(), and
>>       partition_update() functions.
>>
>> 3. Use new helpers for remote partition (Patches 6-8)
>>
>> 4. Local Partition Implementation (Patches 9-12):
>>     - Separate update_parent_effective_cpumask() into dedicated functions:
>>       * local_partition_enable()
>>       * local_partition_disable()
>>       * local_partition_update()
>>
>> 5. Optimization and Cleanup (Patches 13-21):
>>     - Remove redundant partition-related operations
>>     - Additional optimizations based on the new architecture
>>
>> base-commit: 6d7e7251d03f98f26f2ee0dfd21bb0a0480a2178
>>
>> ---
>>
>> Changes from RFC v2:
>> 1. Dropped the bugfix (already merged/fixed upstream)
>> 2. Rebased onto next
>> 3. Introduced partition_switch to handle root state switches
>> 4. Directly use local_partition_disable()—no longer first introduce
>>     local_partition_invalidate() before unifying the two
>> 5. Incorporated modifications based on Longman's suggestions
>>
>> Changes in RFC v1:
>> 1. Added bugfix for root partition isolcpus at series start.
>> 2. Completed helper function implementations when first introduced.
>> 3. Split larger patches into smaller, more reviewable units.
>> 4. Incorporated feedback from Longman.
>>
>> Chen Ridong (21):
>>    cpuset: add early empty cpumask check in partition_xcpus_add/del
>>    cpuset: generalize the validate_partition() interface
>>    cpuset: introduce partition_enable()
>>    cpuset: introduce partition_disable()
>>    cpuset: introduce partition_update()
>>    cpuset: use partition_enable() for remote partition enablement
>>    cpuset: use partition_disable() for remote partition disablement
>>    cpuset: use partition_update() for remote partition update
>>    cpuset: introduce local_partition_enable()
>>    cpuset: introduce local_partition_disable()
>>    cpuset: user local_partition_disable() to invalidate local partition
>>    cpuset: introduce local_partition_update()
>>    cpuset: remove update_parent_effective_cpumask
>>    cpuset: remove redundant partition field updates
>>    cpuset: simplify partition update logic for hotplug tasks
>>    cpuset: use partition_disable for compute_partition_effective_cpumask
>>    cpuset: use validate_local_partition in local_partition_enable
>>    cpuset: introduce validate_remote_partition
>>    cpuset: simplify the update_prstate() function
>>    cpuset: remove prs_err clear when notify_partition_change
>>    cpuset: Remove unnecessary validation in partition_cpus_change
>>
>>   kernel/cgroup/cpuset.c | 1014 ++++++++++++++++++----------------------
>>   1 file changed, 453 insertions(+), 561 deletions(-)
>>
> Hi Longman,
>
> I would greatly appreciate it if you could review this series when you are available.
>
I was expecting a v3 and so I had probably missed it. Will take a look 
sometimes this week.

Cheers,
Longman


  reply	other threads:[~2025-11-25  1:09 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-17  2:46 [PATCH -next 00/21] cpuset: rework local partition logic Chen Ridong
2025-11-17  2:46 ` [PATCH -next 01/21] cpuset: add early empty cpumask check in partition_xcpus_add/del Chen Ridong
2025-11-17  2:46 ` [PATCH -next 02/21] cpuset: generalize the validate_partition() interface Chen Ridong
2025-11-17  2:46 ` [PATCH -next 03/21] cpuset: introduce partition_enable() Chen Ridong
2025-11-17  2:46 ` [PATCH -next 04/21] cpuset: introduce partition_disable() Chen Ridong
2025-11-17  2:46 ` [PATCH -next 05/21] cpuset: introduce partition_update() Chen Ridong
2025-11-17  2:46 ` [PATCH -next 06/21] cpuset: use partition_enable() for remote partition enablement Chen Ridong
2025-11-17  2:46 ` [PATCH -next 07/21] cpuset: use partition_disable() for remote partition disablement Chen Ridong
2025-11-17  2:46 ` [PATCH -next 08/21] cpuset: use partition_update() for remote partition update Chen Ridong
2025-11-17  2:46 ` [PATCH -next 09/21] cpuset: introduce local_partition_enable() Chen Ridong
2025-11-17  2:46 ` [PATCH -next 10/21] cpuset: introduce local_partition_disable() Chen Ridong
2025-11-17  2:46 ` [PATCH -next 11/21] cpuset: user local_partition_disable() to invalidate local partition Chen Ridong
2025-11-17  2:46 ` [PATCH -next 12/21] cpuset: introduce local_partition_update() Chen Ridong
2025-11-17  2:46 ` [PATCH -next 13/21] cpuset: remove update_parent_effective_cpumask Chen Ridong
2025-11-17  2:46 ` [PATCH -next 14/21] cpuset: remove redundant partition field updates Chen Ridong
2025-11-17  2:46 ` [PATCH -next 15/21] cpuset: simplify partition update logic for hotplug tasks Chen Ridong
2025-11-17  2:46 ` [PATCH -next 16/21] cpuset: use partition_disable for compute_partition_effective_cpumask Chen Ridong
2025-11-17  2:46 ` [PATCH -next 17/21] cpuset: use validate_local_partition in local_partition_enable Chen Ridong
2025-11-17  2:46 ` [PATCH -next 18/21] cpuset: introduce validate_remote_partition Chen Ridong
2025-11-17  2:46 ` [PATCH -next 19/21] cpuset: simplify the update_prstate() function Chen Ridong
2025-11-17  2:46 ` [PATCH -next 20/21] cpuset: remove prs_err clear when notify_partition_change Chen Ridong
2025-11-17  2:46 ` [PATCH -next 21/21] cpuset: Remove unnecessary validation in partition_cpus_change Chen Ridong
2025-11-25  0:49 ` [PATCH -next 00/21] cpuset: rework local partition logic Chen Ridong
2025-11-25  1:09   ` Waiman Long [this message]
2025-11-25  1:17     ` Chen Ridong
2025-12-02  0:43     ` Chen Ridong
2025-12-15 13:15     ` Chen Ridong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ca3b31ca-e9c3-41e8-ae88-d4b126f574b3@redhat.com \
    --to=llong@redhat.com \
    --cc=cgroups@vger.kernel.org \
    --cc=chenridong@huawei.com \
    --cc=chenridong@huaweicloud.com \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lujialin4@huawei.com \
    --cc=mkoutny@suse.com \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox