summaryrefslogtreecommitdiffstats
path: root/meta-eas/recipes-kernel/linux/linux-renesas/0081-SPLIT-sched-fair-Don-t-load-balance-from-group_other.patch
blob: 1258e93f40b9c4fe931711d1e339447a50f121bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
From 28e38963fbe539c9804d9132aa3613ead32ee330 Mon Sep 17 00:00:00 2001
From: Brendan Jackman <brendan.jackman@arm.com>
Date: Wed, 15 Feb 2017 17:17:26 +0000
Subject: [PATCH 81/92] SPLIT: sched/fair: Don't load balance from group_other
 to groups without spare capacity

This is split out from 885677858fd "sched: Consider misfit tasks when
load-balancing" from lsk-4.4-armlt. The rest of that patch will follow, this is
separated for ease of examination and discussion.

(cherry picked from commit a3e504284acbf3dd12ceec8ebcabaee1892f876e)
Signed-off-by: Gaku Inami <gaku.inami.xw@bp.renesas.com>
---
 kernel/sched/fair.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index fea3ca8..cf60d93 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -7750,6 +7750,14 @@ static bool update_sd_pick_busiest(struct lb_env *env,
 	if (sgs->group_type < busiest->group_type)
 		return false;
 
+	/*
+	 * Candidate sg doesn't face any serious load-balance problems
+	 * so don't pick it if the local sg is already filled up.
+	 */
+	if (sgs->group_type == group_other &&
+	    !group_has_capacity(env, &sds->local_stat))
+		return false;
+
 	if (sgs->avg_load <= busiest->avg_load)
 		return false;
 
-- 
1.9.1