lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <38d87eb0-a670-4df2-b68f-f0173ad39c90@huaweicloud.com>
Date: Mon, 5 Jan 2026 14:21:16 +0800
From: Chen Ridong <chenridong@...weicloud.com>
To: Waiman Long <llong@...hat.com>, tj@...nel.org, hannes@...xchg.org,
 mkoutny@...e.com
Cc: cgroups@...r.kernel.org, linux-kernel@...r.kernel.org,
 lujialin4@...wei.com
Subject: Re: [PATCH RESEND -next 00/21] cpuset: rework local partition logic



On 2026/1/5 12:33, Waiman Long wrote:
> On 1/4/26 11:01 PM, Chen Ridong wrote:
>>
>> On 2025/12/25 20:30, 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: cc3aa43b44bdb43dfbac0fcb51c56594a11338a8
>>>
>>> ---
>>>
>>> Changes in RESEND:
>>> 1. Rebase on the next-20251219
>>>
>>> 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 | 1023 ++++++++++++++++++----------------------
>>>   1 file changed, 454 insertions(+), 569 deletions(-)
>>>
>> Hi Longman,
>>
>> This series has been out for a while. I'd appreciate it if you could take some time to review it.
>>
> Sorry for being late in reviewing this updated series. However, there are also other cpuset related
> patch series that are being reviewed at the moment. Since this is mainly a cleanup patch making the
> code easier to understand, but it does a major restructuring of the existing code which will likely
> make the other patches harder to merge. So I would like to prioritize the other fix and feature
> patches first. I will try to review the patches when I have time, but I want this series to be
> merged after other cpuset patches are done.
> 
> Sorry for the inconvenience caused as you may have to redo the patch series again when the code base
> is settled down.
> 

It is all right.

Do you mean the series titled "cgroup/cpuset: Don't invalidate sibling partitions on cpuset.cpus
conflict"?

I mainly want to know when I should redo it. I don't see many conflicts beyond those in this series.

-- 
Best regards,
Ridong


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ