Commit af218122 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar

sched/topology: Simplify sched_group_mask() usage

While writing the comments, it occurred to me that:

  sg_cpus & sg_mask == sg_mask

at least conceptually; the !overlap case sets the all 1s mask. If we
correct that we can simplify things and directly use sg_mask.
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 0c0e776a
...@@ -7996,7 +7996,7 @@ static int active_load_balance_cpu_stop(void *data); ...@@ -7996,7 +7996,7 @@ static int active_load_balance_cpu_stop(void *data);
static int should_we_balance(struct lb_env *env) static int should_we_balance(struct lb_env *env)
{ {
struct sched_group *sg = env->sd->groups; struct sched_group *sg = env->sd->groups;
struct cpumask *sg_cpus, *sg_mask; struct cpumask *sg_mask;
int cpu, balance_cpu = -1; int cpu, balance_cpu = -1;
/* /*
...@@ -8006,11 +8006,10 @@ static int should_we_balance(struct lb_env *env) ...@@ -8006,11 +8006,10 @@ static int should_we_balance(struct lb_env *env)
if (env->idle == CPU_NEWLY_IDLE) if (env->idle == CPU_NEWLY_IDLE)
return 1; return 1;
sg_cpus = sched_group_cpus(sg);
sg_mask = sched_group_mask(sg); sg_mask = sched_group_mask(sg);
/* Try to find first idle cpu */ /* Try to find first idle cpu */
for_each_cpu_and(cpu, sg_cpus, env->cpus) { for_each_cpu_and(cpu, sg_mask, env->cpus) {
if (!cpumask_test_cpu(cpu, sg_mask) || !idle_cpu(cpu)) if (!idle_cpu(cpu))
continue; continue;
balance_cpu = cpu; balance_cpu = cpu;
......
...@@ -85,7 +85,8 @@ static int sched_domain_debug_one(struct sched_domain *sd, int cpu, int level, ...@@ -85,7 +85,8 @@ static int sched_domain_debug_one(struct sched_domain *sd, int cpu, int level,
group->sgc->id, group->sgc->id,
cpumask_pr_args(sched_group_cpus(group))); cpumask_pr_args(sched_group_cpus(group)));
if ((sd->flags & SD_OVERLAP) && !cpumask_full(sched_group_mask(group))) { if ((sd->flags & SD_OVERLAP) &&
!cpumask_equal(sched_group_mask(group), sched_group_cpus(group))) {
printk(KERN_CONT " mask=%*pbl", printk(KERN_CONT " mask=%*pbl",
cpumask_pr_args(sched_group_mask(group))); cpumask_pr_args(sched_group_mask(group)));
} }
...@@ -505,7 +506,7 @@ enum s_alloc { ...@@ -505,7 +506,7 @@ enum s_alloc {
*/ */
int group_balance_cpu(struct sched_group *sg) int group_balance_cpu(struct sched_group *sg)
{ {
return cpumask_first_and(sched_group_cpus(sg), sched_group_mask(sg)); return cpumask_first(sched_group_mask(sg));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment