* [PATCH -next 0/3] cpuset: code cleanup and redundancy removal
@ 2025-09-22 13:02 Chen Ridong
2025-09-22 13:02 ` [PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update Chen Ridong
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Chen Ridong @ 2025-09-22 13:02 UTC (permalink / raw)
To: longman, tj, hannes, mkoutny; +Cc: cgroups, linux-kernel, lujialin4, chenridong
From: Chen Ridong <chenridong@huawei.com>
This patch series aims to clean up redundant code and remove unnecessary
checks in the cpuset subsystem.
Chen Ridong (3):
cpuset: remove redundant special case for null input in node mask
update
cpuset: remove impossible warning in update_parent_effective_cpumask
cpuset: remove is_prs_invalid helper
kernel/cgroup/cpuset.c | 34 +++++++++++-----------------------
1 file changed, 11 insertions(+), 23 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update
2025-09-22 13:02 [PATCH -next 0/3] cpuset: code cleanup and redundancy removal Chen Ridong
@ 2025-09-22 13:02 ` Chen Ridong
2025-09-22 21:36 ` Waiman Long
2025-09-22 13:02 ` [PATCH -next 2/3] cpuset: remove impossible warning in update_parent_effective_cpumask Chen Ridong
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Chen Ridong @ 2025-09-22 13:02 UTC (permalink / raw)
To: longman, tj, hannes, mkoutny; +Cc: cgroups, linux-kernel, lujialin4, chenridong
From: Chen Ridong <chenridong@huawei.com>
The nodelist_parse function already handles empty nodemask input
appropriately, making it unnecessary to handle this case separately
during the node mask update process.
Signed-off-by: Chen Ridong <chenridong@huawei.com>
---
kernel/cgroup/cpuset.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 535174ed7126..20dface3c3e0 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -2847,22 +2847,16 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs,
/*
* An empty mems_allowed is ok iff there are no tasks in the cpuset.
- * Since nodelist_parse() fails on an empty mask, we special case
- * that parsing. The validate_change() call ensures that cpusets
- * with tasks have memory.
+ * The validate_change() call ensures that cpusets with tasks have memory.
*/
- if (!*buf) {
- nodes_clear(trialcs->mems_allowed);
- } else {
- retval = nodelist_parse(buf, trialcs->mems_allowed);
- if (retval < 0)
- goto done;
+ retval = nodelist_parse(buf, trialcs->mems_allowed);
+ if (retval < 0)
+ goto done;
- if (!nodes_subset(trialcs->mems_allowed,
- top_cpuset.mems_allowed)) {
- retval = -EINVAL;
- goto done;
- }
+ if (!nodes_subset(trialcs->mems_allowed,
+ top_cpuset.mems_allowed)) {
+ retval = -EINVAL;
+ goto done;
}
if (nodes_equal(cs->mems_allowed, trialcs->mems_allowed)) {
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH -next 2/3] cpuset: remove impossible warning in update_parent_effective_cpumask
2025-09-22 13:02 [PATCH -next 0/3] cpuset: code cleanup and redundancy removal Chen Ridong
2025-09-22 13:02 ` [PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update Chen Ridong
@ 2025-09-22 13:02 ` Chen Ridong
2025-09-22 21:37 ` Waiman Long
2025-09-22 13:02 ` [PATCH -next 3/3] cpuset: remove is_prs_invalid helper Chen Ridong
2025-09-22 23:10 ` [PATCH 0/3] cpuset: code cleanup and redundancy removal Tejun Heo
3 siblings, 1 reply; 8+ messages in thread
From: Chen Ridong @ 2025-09-22 13:02 UTC (permalink / raw)
To: longman, tj, hannes, mkoutny; +Cc: cgroups, linux-kernel, lujialin4, chenridong
From: Chen Ridong <chenridong@huawei.com>
If the parent is not a valid partition, an error will be returned before
any partition update command is processed. This means the
WARN_ON_ONCE(!is_partition_valid(parent)) can never be triggered, so
it is safe to remove.
Signed-off-by: Chen Ridong <chenridong@huawei.com>
---
kernel/cgroup/cpuset.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 20dface3c3e0..196645b38b24 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -1923,7 +1923,6 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
* A partition error happens when parent has tasks and all
* its effective CPUs will have to be distributed out.
*/
- WARN_ON_ONCE(!is_partition_valid(parent));
if (nocpu) {
part_error = PERR_NOCPUS;
if (is_partition_valid(cs))
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH -next 3/3] cpuset: remove is_prs_invalid helper
2025-09-22 13:02 [PATCH -next 0/3] cpuset: code cleanup and redundancy removal Chen Ridong
2025-09-22 13:02 ` [PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update Chen Ridong
2025-09-22 13:02 ` [PATCH -next 2/3] cpuset: remove impossible warning in update_parent_effective_cpumask Chen Ridong
@ 2025-09-22 13:02 ` Chen Ridong
2025-09-22 21:37 ` Waiman Long
2025-09-22 23:10 ` [PATCH 0/3] cpuset: code cleanup and redundancy removal Tejun Heo
3 siblings, 1 reply; 8+ messages in thread
From: Chen Ridong @ 2025-09-22 13:02 UTC (permalink / raw)
To: longman, tj, hannes, mkoutny; +Cc: cgroups, linux-kernel, lujialin4, chenridong
From: Chen Ridong <chenridong@huawei.com>
The is_prs_invalid helper function is redundant as it serves a similar
purpose to is_partition_invalid. It can be fully replaced by the existing
is_partition_invalid function, so this patch removes the is_prs_invalid
helper.
Signed-off-by: Chen Ridong <chenridong@huawei.com>
---
kernel/cgroup/cpuset.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 196645b38b24..52468d2c178a 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -132,11 +132,6 @@ static bool force_sd_rebuild;
#define PRS_INVALID_ROOT -1
#define PRS_INVALID_ISOLATED -2
-static inline bool is_prs_invalid(int prs_state)
-{
- return prs_state < 0;
-}
-
/*
* Temporary cpumasks for working with partitions that are passed among
* functions to avoid memory allocation in inner functions.
@@ -1767,7 +1762,7 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
old_prs = new_prs = cs->partition_root_state;
if (cmd == partcmd_invalidate) {
- if (is_prs_invalid(old_prs))
+ if (is_partition_invalid(cs))
return 0;
/*
@@ -1874,7 +1869,7 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
* For invalid partition:
* delmask = newmask & parent->effective_xcpus
*/
- if (is_prs_invalid(old_prs)) {
+ if (is_partition_invalid(cs)) {
adding = false;
deleting = cpumask_and(tmp->delmask,
newmask, parent->effective_xcpus);
@@ -2964,7 +2959,7 @@ static int update_prstate(struct cpuset *cs, int new_prs)
/*
* Treat a previously invalid partition root as if it is a "member".
*/
- if (new_prs && is_prs_invalid(old_prs))
+ if (new_prs && is_partition_invalid(cs))
old_prs = PRS_MEMBER;
if (alloc_tmpmasks(&tmpmask))
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update
2025-09-22 13:02 ` [PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update Chen Ridong
@ 2025-09-22 21:36 ` Waiman Long
0 siblings, 0 replies; 8+ messages in thread
From: Waiman Long @ 2025-09-22 21:36 UTC (permalink / raw)
To: Chen Ridong, tj, hannes, mkoutny
Cc: cgroups, linux-kernel, lujialin4, chenridong
On 9/22/25 9:02 AM, Chen Ridong wrote:
> From: Chen Ridong <chenridong@huawei.com>
>
> The nodelist_parse function already handles empty nodemask input
> appropriately, making it unnecessary to handle this case separately
> during the node mask update process.
>
> Signed-off-by: Chen Ridong <chenridong@huawei.com>
> ---
> kernel/cgroup/cpuset.c | 22 ++++++++--------------
> 1 file changed, 8 insertions(+), 14 deletions(-)
>
> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
> index 535174ed7126..20dface3c3e0 100644
> --- a/kernel/cgroup/cpuset.c
> +++ b/kernel/cgroup/cpuset.c
> @@ -2847,22 +2847,16 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs,
>
> /*
> * An empty mems_allowed is ok iff there are no tasks in the cpuset.
> - * Since nodelist_parse() fails on an empty mask, we special case
> - * that parsing. The validate_change() call ensures that cpusets
> - * with tasks have memory.
> + * The validate_change() call ensures that cpusets with tasks have memory.
> */
> - if (!*buf) {
> - nodes_clear(trialcs->mems_allowed);
> - } else {
> - retval = nodelist_parse(buf, trialcs->mems_allowed);
> - if (retval < 0)
> - goto done;
> + retval = nodelist_parse(buf, trialcs->mems_allowed);
> + if (retval < 0)
> + goto done;
>
> - if (!nodes_subset(trialcs->mems_allowed,
> - top_cpuset.mems_allowed)) {
> - retval = -EINVAL;
> - goto done;
> - }
> + if (!nodes_subset(trialcs->mems_allowed,
> + top_cpuset.mems_allowed)) {
> + retval = -EINVAL;
> + goto done;
> }
>
> if (nodes_equal(cs->mems_allowed, trialcs->mems_allowed)) {
Right, the *buf check is no longer need with the current version fof
nodelist_parse().
Reveiwed-by: Waiman Long <longman@redhat.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH -next 2/3] cpuset: remove impossible warning in update_parent_effective_cpumask
2025-09-22 13:02 ` [PATCH -next 2/3] cpuset: remove impossible warning in update_parent_effective_cpumask Chen Ridong
@ 2025-09-22 21:37 ` Waiman Long
0 siblings, 0 replies; 8+ messages in thread
From: Waiman Long @ 2025-09-22 21:37 UTC (permalink / raw)
To: Chen Ridong, tj, hannes, mkoutny
Cc: cgroups, linux-kernel, lujialin4, chenridong
On 9/22/25 9:02 AM, Chen Ridong wrote:
> From: Chen Ridong <chenridong@huawei.com>
>
> If the parent is not a valid partition, an error will be returned before
> any partition update command is processed. This means the
> WARN_ON_ONCE(!is_partition_valid(parent)) can never be triggered, so
> it is safe to remove.
>
> Signed-off-by: Chen Ridong <chenridong@huawei.com>
> ---
> kernel/cgroup/cpuset.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
> index 20dface3c3e0..196645b38b24 100644
> --- a/kernel/cgroup/cpuset.c
> +++ b/kernel/cgroup/cpuset.c
> @@ -1923,7 +1923,6 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
> * A partition error happens when parent has tasks and all
> * its effective CPUs will have to be distributed out.
> */
> - WARN_ON_ONCE(!is_partition_valid(parent));
> if (nocpu) {
> part_error = PERR_NOCPUS;
> if (is_partition_valid(cs))
Acked-by: Waiman Long <longman@redhat.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH -next 3/3] cpuset: remove is_prs_invalid helper
2025-09-22 13:02 ` [PATCH -next 3/3] cpuset: remove is_prs_invalid helper Chen Ridong
@ 2025-09-22 21:37 ` Waiman Long
0 siblings, 0 replies; 8+ messages in thread
From: Waiman Long @ 2025-09-22 21:37 UTC (permalink / raw)
To: Chen Ridong, tj, hannes, mkoutny
Cc: cgroups, linux-kernel, lujialin4, chenridong
On 9/22/25 9:02 AM, Chen Ridong wrote:
> From: Chen Ridong <chenridong@huawei.com>
>
> The is_prs_invalid helper function is redundant as it serves a similar
> purpose to is_partition_invalid. It can be fully replaced by the existing
> is_partition_invalid function, so this patch removes the is_prs_invalid
> helper.
>
> Signed-off-by: Chen Ridong <chenridong@huawei.com>
> ---
> kernel/cgroup/cpuset.c | 11 +++--------
> 1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
> index 196645b38b24..52468d2c178a 100644
> --- a/kernel/cgroup/cpuset.c
> +++ b/kernel/cgroup/cpuset.c
> @@ -132,11 +132,6 @@ static bool force_sd_rebuild;
> #define PRS_INVALID_ROOT -1
> #define PRS_INVALID_ISOLATED -2
>
> -static inline bool is_prs_invalid(int prs_state)
> -{
> - return prs_state < 0;
> -}
> -
> /*
> * Temporary cpumasks for working with partitions that are passed among
> * functions to avoid memory allocation in inner functions.
> @@ -1767,7 +1762,7 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
> old_prs = new_prs = cs->partition_root_state;
>
> if (cmd == partcmd_invalidate) {
> - if (is_prs_invalid(old_prs))
> + if (is_partition_invalid(cs))
> return 0;
>
> /*
> @@ -1874,7 +1869,7 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
> * For invalid partition:
> * delmask = newmask & parent->effective_xcpus
> */
> - if (is_prs_invalid(old_prs)) {
> + if (is_partition_invalid(cs)) {
> adding = false;
> deleting = cpumask_and(tmp->delmask,
> newmask, parent->effective_xcpus);
> @@ -2964,7 +2959,7 @@ static int update_prstate(struct cpuset *cs, int new_prs)
> /*
> * Treat a previously invalid partition root as if it is a "member".
> */
> - if (new_prs && is_prs_invalid(old_prs))
> + if (new_prs && is_partition_invalid(cs))
> old_prs = PRS_MEMBER;
>
> if (alloc_tmpmasks(&tmpmask))
Acked-by: Waiman Long <longman@redhat.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/3] cpuset: code cleanup and redundancy removal
2025-09-22 13:02 [PATCH -next 0/3] cpuset: code cleanup and redundancy removal Chen Ridong
` (2 preceding siblings ...)
2025-09-22 13:02 ` [PATCH -next 3/3] cpuset: remove is_prs_invalid helper Chen Ridong
@ 2025-09-22 23:10 ` Tejun Heo
3 siblings, 0 replies; 8+ messages in thread
From: Tejun Heo @ 2025-09-22 23:10 UTC (permalink / raw)
To: Chen Ridong, longman, hannes, mkoutny; +Cc: cgroups, linux-kernel, lujialin4
> Chen Ridong (3):
> cpuset: remove redundant special case for null input in node mask
> update
> cpuset: remove impossible warning in update_parent_effective_cpumask
> cpuset: remove is_prs_invalid helper
Applied 1-3 to cgroup/for-6.18.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-09-22 23:10 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-22 13:02 [PATCH -next 0/3] cpuset: code cleanup and redundancy removal Chen Ridong
2025-09-22 13:02 ` [PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update Chen Ridong
2025-09-22 21:36 ` Waiman Long
2025-09-22 13:02 ` [PATCH -next 2/3] cpuset: remove impossible warning in update_parent_effective_cpumask Chen Ridong
2025-09-22 21:37 ` Waiman Long
2025-09-22 13:02 ` [PATCH -next 3/3] cpuset: remove is_prs_invalid helper Chen Ridong
2025-09-22 21:37 ` Waiman Long
2025-09-22 23:10 ` [PATCH 0/3] cpuset: code cleanup and redundancy removal Tejun Heo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.