All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched/fair: Fix overutilized update in enqueue_task_fair()
@ 2020-11-12 11:12 Quentin Perret
  2020-11-12 12:17 ` Vincent Guittot
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Quentin Perret @ 2020-11-12 11:12 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra, Juri Lelli, Vincent Guittot,
	Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman,
	Daniel Bristot de Oliveira, Morten Rasmussen, Quentin Perret,
	open list:SCHEDULER
  Cc: kernel-team, Quentin Perret, Rick Yiu

enqueue_task_fair() attempts to skip the overutilized update for new
tasks as their util_avg is not accurate yet. However, the flag we check
to do so is overwritten earlier on in the function, which makes the
condition pretty much a nop.

Fix this by saving the flag early on.

Fixes: 2802bf3cd936 ("sched/fair: Add over-utilization/tipping point
indicator")
Reported-by: Rick Yiu <rickyiu@google.com>
Signed-off-by: Quentin Perret <qperret@google.com>
---
 kernel/sched/fair.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 290f9e38378c..f3ee60b92718 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5477,6 +5477,7 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, int flags)
 	struct cfs_rq *cfs_rq;
 	struct sched_entity *se = &p->se;
 	int idle_h_nr_running = task_has_idle_policy(p);
+	int task_new = !(flags & ENQUEUE_WAKEUP);
 
 	/*
 	 * The code below (indirectly) updates schedutil which looks at
@@ -5549,7 +5550,7 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, int flags)
 	 * into account, but that is not straightforward to implement,
 	 * and the following generally works well enough in practice.
 	 */
-	if (flags & ENQUEUE_WAKEUP)
+	if (!task_new)
 		update_overutilized_status(rq);
 
 enqueue_throttle:
-- 
2.29.2.222.g5d2a92d10f8-goog


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-11-19  9:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-12 11:12 [PATCH] sched/fair: Fix overutilized update in enqueue_task_fair() Quentin Perret
2020-11-12 12:17 ` Vincent Guittot
2020-11-12 12:29 ` Valentin Schneider
2020-11-12 12:38   ` Quentin Perret
2020-11-12 12:52     ` Valentin Schneider
2020-11-13  8:18 ` Peter Zijlstra
2020-11-19  9:55 ` [tip: sched/urgent] " tip-bot2 for Quentin Perret

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.