From 55b74e57f9fc6a32802159f59bb12d4f9e8ab4c7 Mon Sep 17 00:00:00 2001 From: Daniel Lezcano Date: Wed, 10 Dec 2014 00:02:28 +0100 Subject: sched: fair: Don't wake up a cpu before its break even Signed-off-by: Daniel Lezcano --- kernel/sched/fair.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index be979d28b815..d8b325ef3a41 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4452,6 +4452,16 @@ find_idlest_cpu(struct sched_group *group, struct task_struct *p, int this_cpu) struct cpuidle_state *idle = idle_get_state(rq); if (idle) { + + /* + * When we want to save energy, exclude cpu which did not reach + * the break even point in the idle state + */ + if (sched_feat(ENERGY_IDLE) && + ((ktime_to_us(ktime_get()) - idle->idle_stamp < + idle->target_residency))) + continue; + if (idle->exit_latency < min_exit_latency) { /* * We give priority to a CPU -- cgit v1.2.3