|
@@ -3602,11 +3602,19 @@ static void update_cpu_power(struct sched_domain *sd, int cpu)
|
|
unsigned long power = SCHED_LOAD_SCALE;
|
|
unsigned long power = SCHED_LOAD_SCALE;
|
|
struct sched_group *sdg = sd->groups;
|
|
struct sched_group *sdg = sd->groups;
|
|
|
|
|
|
- power *= arch_scale_freq_power(sd, cpu);
|
|
|
|
|
|
+ if (sched_feat(ARCH_POWER))
|
|
|
|
+ power *= arch_scale_freq_power(sd, cpu);
|
|
|
|
+ else
|
|
|
|
+ power *= default_scale_freq_power(sd, cpu);
|
|
|
|
+
|
|
power >>= SCHED_LOAD_SHIFT;
|
|
power >>= SCHED_LOAD_SHIFT;
|
|
|
|
|
|
if ((sd->flags & SD_SHARE_CPUPOWER) && weight > 1) {
|
|
if ((sd->flags & SD_SHARE_CPUPOWER) && weight > 1) {
|
|
- power *= arch_scale_smt_power(sd, cpu);
|
|
|
|
|
|
+ if (sched_feat(ARCH_POWER))
|
|
|
|
+ power *= arch_scale_smt_power(sd, cpu);
|
|
|
|
+ else
|
|
|
|
+ power *= default_scale_smt_power(sd, cpu);
|
|
|
|
+
|
|
power >>= SCHED_LOAD_SHIFT;
|
|
power >>= SCHED_LOAD_SHIFT;
|
|
}
|
|
}
|
|
|
|
|