From nobody Fri Apr 10 12:39:05 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 553F2C38145 for ; Tue, 23 Aug 2022 11:42:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358188AbiHWLlM (ORCPT ); Tue, 23 Aug 2022 07:41:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1357317AbiHWLfW (ORCPT ); Tue, 23 Aug 2022 07:35:22 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 010E876947; Tue, 23 Aug 2022 02:27:32 -0700 (PDT) Date: Tue, 23 Aug 2022 09:27:28 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1661246850; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GqvtbssgkxrjrADkNfvVn2zUp2RSSCAT5f187YXR6jQ=; b=J9g0/SDvAuzb6dfiiWkClAxTQ3pJzlUZMdWmmRdVh24n9l3G+qd/SV0y/eh4NK3hNdGpMl KqgRJlELvPOKnMY9bIwYjnB6Q2nAtyTr57RqG/O+kC1YljFaeNc1iwmG3xTIfjW1+HVzss KoEDWpuIHuFaKr//5z5kCaF/zD8GJNQCohifr/buLHYK11HHtfLgXWcmnPS0hT0Q+Z62lM buOhEiVedULXWZHreFBnupdoD017Y5SGBrG6S8qYtgQ9Z8QOH3B+Ad4DxyZddT8HO9hJyS O0j84WC9CMqr6w0zdM04df7Wgc3RC/lP8VE1GS1XPun6CufbYllaD8c2XZJpMg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1661246850; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GqvtbssgkxrjrADkNfvVn2zUp2RSSCAT5f187YXR6jQ=; b=eWNxD0dAqival1GwMf4R1Ujv/9tbO9NuOayb6oP2D5GdbLaEJXc7Ytfw651swuB4NYfAbK l9cooISEMsLet+AA== From: "tip-bot2 for Chengming Zhou" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: sched/core] sched/fair: Don't init util/runnable_avg for !fair task Cc: Vincent Guittot , Chengming Zhou , "Peter Zijlstra (Intel)" , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20220818124805.601-10-zhouchengming@bytedance.com> References: <20220818124805.601-10-zhouchengming@bytedance.com> MIME-Version: 1.0 Message-ID: <166124684880.401.13181895170938824207.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The following commit has been merged into the sched/core branch of tip: Commit-ID: e4fe074d6c359c19b74564fa1364fe48343cfa5d Gitweb: https://git.kernel.org/tip/e4fe074d6c359c19b74564fa1364fe483= 43cfa5d Author: Chengming Zhou AuthorDate: Thu, 18 Aug 2022 20:48:05 +08:00 Committer: Peter Zijlstra CommitterDate: Tue, 23 Aug 2022 11:01:20 +02:00 sched/fair: Don't init util/runnable_avg for !fair task post_init_entity_util_avg() init task util_avg according to the cpu util_avg at the time of fork, which will decay when switched_to_fair() some time lat= er, we'd better to not set them at all in the case of !fair task. Suggested-by: Vincent Guittot Signed-off-by: Chengming Zhou Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Vincent Guittot Link: https://lore.kernel.org/r/20220818124805.601-10-zhouchengming@bytedan= ce.com --- kernel/sched/fair.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ef325b5..e8c1b88 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -833,20 +833,6 @@ void post_init_entity_util_avg(struct task_struct *p) long cpu_scale =3D arch_scale_cpu_capacity(cpu_of(rq_of(cfs_rq))); long cap =3D (long)(cpu_scale - cfs_rq->avg.util_avg) / 2; =20 - if (cap > 0) { - if (cfs_rq->avg.util_avg !=3D 0) { - sa->util_avg =3D cfs_rq->avg.util_avg * se->load.weight; - sa->util_avg /=3D (cfs_rq->avg.load_avg + 1); - - if (sa->util_avg > cap) - sa->util_avg =3D cap; - } else { - sa->util_avg =3D cap; - } - } - - sa->runnable_avg =3D sa->util_avg; - if (p->sched_class !=3D &fair_sched_class) { /* * For !fair tasks do: @@ -861,6 +847,20 @@ void post_init_entity_util_avg(struct task_struct *p) se->avg.last_update_time =3D cfs_rq_clock_pelt(cfs_rq); return; } + + if (cap > 0) { + if (cfs_rq->avg.util_avg !=3D 0) { + sa->util_avg =3D cfs_rq->avg.util_avg * se->load.weight; + sa->util_avg /=3D (cfs_rq->avg.load_avg + 1); + + if (sa->util_avg > cap) + sa->util_avg =3D cap; + } else { + sa->util_avg =3D cap; + } + } + + sa->runnable_avg =3D sa->util_avg; } =20 #else /* !CONFIG_SMP */