ANDROID: cpufreq: arch_topology: 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(). Change-Id: I59e52861ee260755ab0518fe1f7183a2e4e3d0fc 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>
This commit is contained in:

committed by
Quentin Perret

parent
27ad2abc03
commit
0cfe39fe40
@@ -33,6 +33,14 @@ 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);
|
||||
}
|
||||
|
||||
struct cpu_topology {
|
||||
int thread_id;
|
||||
int core_id;
|
||||
|
Reference in New Issue
Block a user