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: Peter 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: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
0c0e776a9b
commit
af218122b1
|
@ -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)
|
||||||
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,
|
||||||
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 {
|
||||||
*/
|
*/
|
||||||
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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue