[PATCH] cgroup/cpuset: drop useless cpumask_empty() in compute_effective_exclusive_cpumask()

Yury Norov posted 1 patch 9 months ago
kernel/cgroup/cpuset.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
[PATCH] cgroup/cpuset: drop useless cpumask_empty() in compute_effective_exclusive_cpumask()
Posted by Yury Norov 9 months ago
Empty cpumasks can't intersect with any others. Therefore, testing for
non-emptyness is useless.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
 kernel/cgroup/cpuset.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 306b60430091..df308072f268 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -1388,14 +1388,12 @@ static int compute_effective_exclusive_cpumask(struct cpuset *cs,
 		if (sibling == cs)
 			continue;
 
-		if (!cpumask_empty(sibling->exclusive_cpus) &&
-		    cpumask_intersects(xcpus, sibling->exclusive_cpus)) {
+		if (cpumask_intersects(xcpus, sibling->exclusive_cpus)) {
 			cpumask_andnot(xcpus, xcpus, sibling->exclusive_cpus);
 			retval++;
 			continue;
 		}
-		if (!cpumask_empty(sibling->effective_xcpus) &&
-		    cpumask_intersects(xcpus, sibling->effective_xcpus)) {
+		if (cpumask_intersects(xcpus, sibling->effective_xcpus)) {
 			cpumask_andnot(xcpus, xcpus, sibling->effective_xcpus);
 			retval++;
 		}
-- 
2.43.0
Re: [PATCH] cgroup/cpuset: drop useless cpumask_empty() in compute_effective_exclusive_cpumask()
Posted by Tejun Heo 9 months ago
On Thu, May 08, 2025 at 03:32:06PM -0400, Yury Norov wrote:
> Empty cpumasks can't intersect with any others. Therefore, testing for
> non-emptyness is useless.
> 
> Signed-off-by: Yury Norov <yury.norov@gmail.com>

Applied to cgroup/for-6.16.

Thanks.

-- 
tejun
Re: [PATCH] cgroup/cpuset: drop useless cpumask_empty() in compute_effective_exclusive_cpumask()
Posted by Waiman Long 9 months ago
On 5/8/25 3:32 PM, Yury Norov wrote:
> Empty cpumasks can't intersect with any others. Therefore, testing for
> non-emptyness is useless.
>
> Signed-off-by: Yury Norov <yury.norov@gmail.com>
> ---
>   kernel/cgroup/cpuset.c | 6 ++----
>   1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
> index 306b60430091..df308072f268 100644
> --- a/kernel/cgroup/cpuset.c
> +++ b/kernel/cgroup/cpuset.c
> @@ -1388,14 +1388,12 @@ static int compute_effective_exclusive_cpumask(struct cpuset *cs,
>   		if (sibling == cs)
>   			continue;
>   
> -		if (!cpumask_empty(sibling->exclusive_cpus) &&
> -		    cpumask_intersects(xcpus, sibling->exclusive_cpus)) {
> +		if (cpumask_intersects(xcpus, sibling->exclusive_cpus)) {
>   			cpumask_andnot(xcpus, xcpus, sibling->exclusive_cpus);
>   			retval++;
>   			continue;
>   		}
> -		if (!cpumask_empty(sibling->effective_xcpus) &&
> -		    cpumask_intersects(xcpus, sibling->effective_xcpus)) {
> +		if (cpumask_intersects(xcpus, sibling->effective_xcpus)) {
>   			cpumask_andnot(xcpus, xcpus, sibling->effective_xcpus);
>   			retval++;
>   		}

You are right. Non-emptiness check is useless.

Reviewed-by: Waiman Long <longman@redhat.com>