[PATCH 2/3] sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0

Qais Yousef posted 3 patches 2 years, 7 months ago
There is a newer version of this series
[PATCH 2/3] sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0
Posted by Qais Yousef 2 years, 7 months ago
find_energy_efficient_cpu() bails out early if effective util of the
task is 0. When uclamp is being used, this could lead to wrong decisions
when uclamp_max is set to 0. Cater for that.

Fixes: d81304bc6193 ("sched/uclamp: Cater for uclamp in find_energy_efficient_cpu()'s early exit condition")
Signed-off-by: Qais Yousef (Google) <qyousef@layalina.io>
---
 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 ca2c389d3180..3521aad67aa0 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -7382,7 +7382,7 @@ static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu)
 	target = prev_cpu;
 
 	sync_entity_load_avg(&p->se);
-	if (!uclamp_task_util(p, p_util_min, p_util_max))
+	if (!uclamp_task_util(p, p_util_min, p_util_max) && p_util_max != 0)
 		goto unlock;
 
 	eenv_task_busy_time(&eenv, p, prev_cpu);
-- 
2.25.1