[PATCH 3/3] sched/fair: Introduce scaled capacity awareness in wake_affine_idle code path

From: Rohit Jain
Date: Sat Oct 07 2017 - 19:46:10 EST


wake_affine_idle returns true if the CPU can run the task. Since it is
ignoring capacity, adding that check there to only return true if the
CPU is full_capacity.

Signed-off-by: Rohit Jain <rohit.k.jain@xxxxxxxxxx>
---
kernel/sched/fair.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 5b1f7b9..f4761f2 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5660,7 +5660,7 @@ static bool
wake_affine_idle(struct sched_domain *sd, struct task_struct *p,
int this_cpu, int prev_cpu, int sync)
{
- if (idle_cpu(this_cpu))
+ if (idle_cpu(this_cpu) && full_capacity(this_cpu))
return true;

if (sync && cpu_rq(this_cpu)->nr_running == 1)
--
2.7.4