if (cpupri_init(&rd->cpupri) != 0)
goto free_rto_mask;
+
+ init_max_cpu_capacity(&rd->max_cpu_capacity);
return 0;
free_rto_mask:
DEFINE_PER_CPU(struct sched_domain *, sd_busy);
DEFINE_PER_CPU(struct sched_domain *, sd_asym);
DEFINE_PER_CPU(struct sched_domain *, sd_ea);
+DEFINE_PER_CPU(struct sched_domain *, sd_scs);
static void update_top_cache_domain(int cpu)
{
break;
}
rcu_assign_pointer(per_cpu(sd_ea, cpu), ea_sd);
+
+ sd = highest_flag_domain(cpu, SD_SHARE_CAP_STATES);
+ rcu_assign_pointer(per_cpu(sd_scs, cpu), sd);
}
/*
rq = cpu_rq(i);
sd = *per_cpu_ptr(d.sd, i);
cpu_attach_domain(sd, d.rd, i);
-
- if (rq->cpu_capacity_orig > rq->rd->max_cpu_capacity)
- rq->rd->max_cpu_capacity = rq->cpu_capacity_orig;
}
rcu_read_unlock();
- if (rq)
- pr_info("max cpu_capacity %lu\n", rq->rd->max_cpu_capacity);
-
ret = 0;
error:
__free_domain_allocs(&d, alloc_state, cpu_map);