mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
sched/topology: Enable EAS on SMP systems also
Currently EAS gets disabled when the system has only symmetric CPUs. For example, either the system is SMP or all big or little CPUs are hotplugged out on a b.L system. EAS features are required for better power and performance on systems with symmetric CPUs. So don't disable EAS on symmetric systems. This is done by assigning sd_asym_cpucapacity per-cpu pointer to the only available sched domain. Change-Id: If08a162f652a6a73884481ebc60e940373dbf9e2 Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
This commit is contained in:
parent
79785b91dd
commit
bf868a6f04
1 changed files with 16 additions and 0 deletions
|
|
@ -653,6 +653,22 @@ static void update_top_cache_domain(int cpu)
|
|||
rcu_assign_pointer(per_cpu(sd_asym_packing, cpu), sd);
|
||||
|
||||
sd = lowest_flag_domain(cpu, SD_ASYM_CPUCAPACITY);
|
||||
/*
|
||||
* EAS gets disabled when there are no asymmetric capacity
|
||||
* CPUs in the system. For example, all big CPUs are
|
||||
* hotplugged out on a b.L system. We want EAS enabled
|
||||
* all the time to get both power and perf benefits. So,
|
||||
* lets assign sd_asym_cpucapacity to the only available
|
||||
* sched domain. This is also important for a single cluster
|
||||
* systems which wants to use EAS.
|
||||
*
|
||||
* Setting sd_asym_cpucapacity() to a sched domain which
|
||||
* has all symmetric capacity CPUs is technically incorrect but
|
||||
* works well for us in getting EAS enabled all the time.
|
||||
*/
|
||||
if (!sd)
|
||||
sd = cpu_rq(cpu)->sd;
|
||||
|
||||
rcu_assign_pointer(per_cpu(sd_asym_cpucapacity, cpu), sd);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue