[RFCv3 PATCH 45/48] sched: Skip cpu as lb src which has one task and capacity gte the dst cpu

From: Morten Rasmussen
Date: Wed Feb 04 2015 - 13:32:03 EST


From: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>

Skip cpu as a potential src (costliest) in case it has only one task
running and its original capacity is greater than or equal to the
original capacity of the dst cpu.

cc: Ingo Molnar <mingo@xxxxxxxxxx>
cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>

Signed-off-by: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>
---
kernel/sched/fair.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 4849bad..b6e2e92 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -7251,6 +7251,10 @@ static struct rq *find_busiest_queue(struct lb_env *env,
};
unsigned long energy = sched_group_energy(&eenv);

+ if (rq->nr_running == 1 && capacity_orig_of(i) >=
+ capacity_orig_of(env->dst_cpu))
+ continue;
+
/*
* We're looking for the minimal cpu efficiency
* min(u_i / e_i), crosswise multiplication leads to
--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/