All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched/fair: Track target domain's avg_scan_cost in select_idle_cpu
@ 2021-12-11 10:43 Yicong Yang
  2021-12-22 10:47 ` Vincent Guittot
  0 siblings, 1 reply; 8+ messages in thread
From: Yicong Yang @ 2021-12-11 10:43 UTC (permalink / raw)
  To: peterz, mingo, juri.lelli, vincent.guittot, mgorman, linux-kernel
  Cc: dietmar.eggemann, rostedt, bsegall, bristot, prime.zeng,
	yangyicong, linuxarm, 21cnbao

We regulate the LLC domain scan in select_idle_cpu() by comparing
the average scan cost of this_sd against the average idle time of
this_rq. This is correct when the domain to scan is the LLC domain
of this cpu. But when the domain to scan is different from this
LLC domain, we'll have an inaccurate estimation of the scan cost
on the target domain as this_sd->avg_scan_cost contains contributions
of scanning other domains besides the target domain.

Track the avg_scan_cost of the target domain to make the estimation
more accurate.

Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
---
 kernel/sched/fair.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 6e476f6d9435..6301740d98cb 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6267,7 +6267,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, bool
 		}
 
 		avg_idle = this_rq->wake_avg_idle;
-		avg_cost = this_sd->avg_scan_cost + 1;
+		avg_cost = sd->avg_scan_cost + 1;
 
 		span_avg = sd->span_weight * avg_idle;
 		if (span_avg > 4*avg_cost)
@@ -6305,7 +6305,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, bool
 		 */
 		this_rq->wake_avg_idle -= min(this_rq->wake_avg_idle, time);
 
-		update_avg(&this_sd->avg_scan_cost, time);
+		update_avg(&sd->avg_scan_cost, time);
 	}
 
 	return idle_cpu;
-- 
2.33.0


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

end of thread, other threads:[~2022-01-11 16:30 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-11 10:43 [PATCH] sched/fair: Track target domain's avg_scan_cost in select_idle_cpu Yicong Yang
2021-12-22 10:47 ` Vincent Guittot
2021-12-23  8:23   ` Yicong Yang
2022-01-04 14:18     ` Vincent Guittot
2022-01-06  9:10       ` Yicong Yang
2022-01-11  7:58         ` Vincent Guittot
2022-01-11  8:31           ` Barry Song
2022-01-11 16:30             ` Vincent Guittot

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.