From: Huang Shijie Date: Tue, 1 Oct 2024 07:00:21 +0000 (+0800) Subject: sched/fair: optimize the PLACE_LAG when se->vlag is zero X-Git-Tag: v6.13-rc1~178^2~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4423af84b29794a9bd2bd07188d8e71083e54c61;p=thirdparty%2Flinux.git sched/fair: optimize the PLACE_LAG when se->vlag is zero When PLACE_LAG is enabled, from the relationship: vl_i = (W + w_i)*vl'_i / W we know that if vl'_i(se->vlag) is zero, the vl_i is zero too. So if se->vlag is zero, there is no need to waste cycles to do the calculation. Signed-off-by: Huang Shijie Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Christoph Lameter (Ampere) Link: https://lkml.kernel.org/r/20241001070021.10626-1-shijie@os.amperecomputing.com --- diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index c9e3b8d2a85fe..5a621210c9c1d 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5280,7 +5280,7 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags) * * EEVDF: placement strategy #1 / #2 */ - if (sched_feat(PLACE_LAG) && cfs_rq->nr_running) { + if (sched_feat(PLACE_LAG) && cfs_rq->nr_running && se->vlag) { struct sched_entity *curr = cfs_rq->curr; unsigned long load;