ANDROID: implement max frequency capping
Implements the Max Frequency Capping Engine (MFCE) getter function topology_get_max_freq_scale() to provide the scheduler with a maximum frequency scaling correction factor for more accurate cpu capacity handling by being able to deal with max frequency capping. This scaling factor describes the influence of running a cpu with a current maximum frequency (policy) lower than the maximum possible frequency (cpuinfo). The factor is: policy_max_freq(cpu) << SCHED_CAPACITY_SHIFT / cpuinfo_max_freq(cpu) It also implements the MFCE setter function arch_set_max_freq_scale() which is called from cpufreq_set_policy(). Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com> Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com> [Trivial cherry-pick issue in cpufreq.c] Signed-off-by: Quentin Perret <quentin.perret@arm.com> Change-Id: I59e52861ee260755ab0518fe1f7183a2e4e3d0fc
This commit is contained in:
committed by
Quentin Perret
parent
6c401bf9b0
commit
c4ed8aa44d
@@ -33,4 +33,12 @@ unsigned long topology_get_freq_scale(int cpu)
|
||||
return per_cpu(freq_scale, cpu);
|
||||
}
|
||||
|
||||
DECLARE_PER_CPU(unsigned long, max_freq_scale);
|
||||
|
||||
static inline
|
||||
unsigned long topology_get_max_freq_scale(struct sched_domain *sd, int cpu)
|
||||
{
|
||||
return per_cpu(max_freq_scale, cpu);
|
||||
}
|
||||
|
||||
#endif /* _LINUX_ARCH_TOPOLOGY_H_ */
|
||||
|
||||
Reference in New Issue
Block a user