Subject: [PATCH v2] sched/topology: remove redundant cpumask_and in init_overlap_sched_group

mask is built in build_balance_mask() by for_each_cpu(i, sg_span), so
it must be a subset of sched_group_span(sg). Though cpumask_first_and
doesn't lead to a wrong result of balance cpu, it is pointless to do
cpumask_and again.

Signed-off-by: Barry Song <[email protected]>
Reviewed-by: Valentin Schneider <[email protected]>
---
-v2: add reviewed-by of Valentin, thanks!

kernel/sched/topology.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index f2066d682cd8..d1aec244c027 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -934,7 +934,7 @@ static void init_overlap_sched_group(struct sched_domain *sd,
int cpu;

build_balance_mask(sd, sg, mask);
- cpu = cpumask_first_and(sched_group_span(sg), mask);
+ cpu = cpumask_first(mask);

sg->sgc = *per_cpu_ptr(sdd->sgc, cpu);
if (atomic_inc_return(&sg->sgc->ref) == 1)
--
2.25.1


2021-03-25 11:10:16

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [tip: sched/core] sched/topology: Remove redundant cpumask_and() in init_overlap_sched_group()

The following commit has been merged into the sched/core branch of tip:

Commit-ID: 0a2b65c03e9b47493e1442bf9c84badc60d9bffb
Gitweb: https://git.kernel.org/tip/0a2b65c03e9b47493e1442bf9c84badc60d9bffb
Author: Barry Song <[email protected]>
AuthorDate: Thu, 25 Mar 2021 15:31:40 +13:00
Committer: Ingo Molnar <[email protected]>
CommitterDate: Thu, 25 Mar 2021 11:41:23 +01:00

sched/topology: Remove redundant cpumask_and() in init_overlap_sched_group()

mask is built in build_balance_mask() by for_each_cpu(i, sg_span), so
it must be a subset of sched_group_span(sg).

So the cpumask_and() call is redundant - remove it.

[ mingo: Adjusted the changelog a bit. ]

Signed-off-by: Barry Song <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Reviewed-by: Valentin Schneider <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
kernel/sched/topology.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index f2066d6..d1aec24 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -934,7 +934,7 @@ static void init_overlap_sched_group(struct sched_domain *sd,
int cpu;

build_balance_mask(sd, sg, mask);
- cpu = cpumask_first_and(sched_group_span(sg), mask);
+ cpu = cpumask_first(mask);

sg->sgc = *per_cpu_ptr(sdd->sgc, cpu);
if (atomic_inc_return(&sg->sgc->ref) == 1)