[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2943236a-bb0e-4417-aee4-31146988709a@huaweicloud.com>
Date: Tue, 25 Nov 2025 08:49:11 +0800
From: Chen Ridong <chenridong@...weicloud.com>
To: longman@...hat.com, tj@...nel.org, hannes@...xchg.org, mkoutny@...e.com
Cc: cgroups@...r.kernel.org, linux-kernel@...r.kernel.org,
lujialin4@...wei.com, chenridong@...wei.com
Subject: Re: [PATCH -next 00/21] cpuset: rework local partition logic
On 2025/11/17 10:46, Chen Ridong wrote:
> From: Chen Ridong <chenridong@...wei.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.
--
Best regards,
Ridong
Powered by blists - more mailing lists