sched: Only down migrate low priority tasks if allowed by affinity mask
authorMorten Rasmussen <morten.rasmussen@arm.com>
Fri, 12 Oct 2012 14:25:02 +0000 (15:25 +0100)
committerJon Medhurst <tixy@linaro.org>
Wed, 17 Jul 2013 10:12:26 +0000 (11:12 +0100)
Adds an extra check intersection of the task affinity mask and the slower
hmp_domain cpumask before down migrating low priority tasks.

Signed-off-by: Morten Rasmussen <morten.rasmussen@arm.com>
kernel/sched/fair.c

index fe2408f25e24a6a68800258ffb690c5603961d32..474dc61b3afeee35d1893408da94faaeef26938e 100644 (file)
@@ -5918,8 +5918,11 @@ static unsigned int hmp_down_migration(int cpu, struct sched_entity *se)
 
 #ifdef CONFIG_SCHED_HMP_PRIO_FILTER
        /* Filter by task priority */
-       if (p->prio >= hmp_up_prio)
+       if ((p->prio >= hmp_up_prio) &&
+               cpumask_intersects(&hmp_slower_domain(cpu)->cpus,
+                                       tsk_cpus_allowed(p))) {
                return 1;
+       }
 #endif
 
        /* Let the task load settle before doing another down migration */