|
@@ -4363,6 +4363,11 @@ static unsigned long capacity_of(int cpu)
|
|
|
return cpu_rq(cpu)->cpu_capacity;
|
|
|
}
|
|
|
|
|
|
+static unsigned long capacity_orig_of(int cpu)
|
|
|
+{
|
|
|
+ return cpu_rq(cpu)->cpu_capacity_orig;
|
|
|
+}
|
|
|
+
|
|
|
static unsigned long cpu_avg_load_per_task(int cpu)
|
|
|
{
|
|
|
struct rq *rq = cpu_rq(cpu);
|
|
@@ -6040,6 +6045,7 @@ static void update_cpu_capacity(struct sched_domain *sd, int cpu)
|
|
|
|
|
|
capacity >>= SCHED_CAPACITY_SHIFT;
|
|
|
|
|
|
+ cpu_rq(cpu)->cpu_capacity_orig = capacity;
|
|
|
sdg->sgc->capacity_orig = capacity;
|
|
|
|
|
|
capacity *= scale_rt_capacity(cpu);
|
|
@@ -6094,7 +6100,7 @@ void update_group_capacity(struct sched_domain *sd, int cpu)
|
|
|
* Runtime updates will correct capacity_orig.
|
|
|
*/
|
|
|
if (unlikely(!rq->sd)) {
|
|
|
- capacity_orig += capacity_of(cpu);
|
|
|
+ capacity_orig += capacity_orig_of(cpu);
|
|
|
capacity += capacity_of(cpu);
|
|
|
continue;
|
|
|
}
|