diff options
author | Vincent Guittot <vincent.guittot@linaro.org> | 2012-10-06 12:31:48 +0200 |
---|---|---|
committer | Vincent Guittot <vincent.guittot@linaro.org> | 2013-03-22 13:38:36 +0100 |
commit | d737f110373eb6201ee01eaaf8773bbc85ebaa1a (patch) | |
tree | e0b7b1dcaf9ae09e66ef7d81250b6cfdb0edfc63 | |
parent | 404051fb7718a8914f1a19083c5f10534e419954 (diff) |
ARM: sched: clear SD_SHARE_POWERDOMAIN
The ARM platforms take advantage of packing small tasks on few cores.
This is true even when the cores of a cluster can't be power gated
independantly. So we clear SD_SHARE_POWERDOMAIN at MC and CPU level.
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Reviewed-by: Morten Rasmussen <morten.rasmussen@arm.com>
-rw-r--r-- | arch/arm/kernel/topology.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c index 79282ebcd93..f89a4a2b6ed 100644 --- a/arch/arm/kernel/topology.c +++ b/arch/arm/kernel/topology.c @@ -201,6 +201,15 @@ static inline void update_cpu_power(unsigned int cpuid, unsigned int mpidr) {} */ struct cputopo_arm cpu_topology[NR_CPUS]; +int arch_sd_local_flags(int level) +{ + /* Powergate at threading level doesn't make sense */ + if (level & SD_SHARE_CPUPOWER) + return 1*SD_SHARE_POWERDOMAIN; + + return 0*SD_SHARE_POWERDOMAIN; +} + const struct cpumask *cpu_coregroup_mask(int cpu) { return &cpu_topology[cpu].core_sibling; |