[PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update

Chen Ridong posted 3 patches 1 week, 2 days ago
[PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update
Posted by Chen Ridong 1 week, 2 days ago
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
Re: [PATCH -next 1/3] cpuset: remove redundant special case for null input in node mask update
Posted by Waiman Long 1 week, 2 days ago
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>