From nobody Sun Feb 8 15:08: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 B9127C001B0 for ; Thu, 10 Aug 2023 07:11:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233854AbjHJHLV (ORCPT ); Thu, 10 Aug 2023 03:11:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233747AbjHJHLB (ORCPT ); Thu, 10 Aug 2023 03:11:01 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AAA4F3; Thu, 10 Aug 2023 00:11:00 -0700 (PDT) Date: Thu, 10 Aug 2023 07:10:58 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1691651459; 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=V6LBU85QchwzGO6KS9gGSbjstTRukMDpbcvc5ZosSeQ=; b=dDjlisZCKE4lDiFwHzkfvXBl9d8/dcXWcnB/hA+e1eyRgXXQaXDd1fpuIB9EZAaq+lGa44 pFeIKiayPrrgWzfF6Xr5+H3CbBnb6lbS1RL2Sx/WlgwB+v0OL2j/BKgjtkVbFM8HNt9JBR WBsdmMjSqQt4ijUL0VQoZvLdKJxYEW7Vlm+warFv7WuEYqNdS+6TNZYohKFdgSP4znTI9g I0jKYLga4JpzVWgg3bJjRUkKNCGuJslqonVDBYZa7wnDY0ZdPlDx/KJZkqvu83cd8N1wnE 29L49+Q2+r5Bw5ZhI++By1KWlfLMW2J7MY4wc/ozRRwPXNjVj4OTLwF5Kcn3vQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1691651459; 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=V6LBU85QchwzGO6KS9gGSbjstTRukMDpbcvc5ZosSeQ=; b=QgnWYeQzlZteqBxVyPosIOpllcIeOB3+qeyXKsAVS3FZ19uR4lnG2Uud1knCV20RK+X+sU dqj00doh/VIumXDA== From: "tip-bot2 for Peter Zijlstra" 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: Remove sched_feat(START_DEBIT) Cc: "Peter Zijlstra (Intel)" , Ingo Molnar , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <20230531124603.722361178@infradead.org> References: <20230531124603.722361178@infradead.org> MIME-Version: 1.0 Message-ID: <169165145843.27769.11310689904341154664.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: e0c2ff903c320d3fd3c2c604dc401b3b7c0a1d13 Gitweb: https://git.kernel.org/tip/e0c2ff903c320d3fd3c2c604dc401b3b7= c0a1d13 Author: Peter Zijlstra AuthorDate: Wed, 31 May 2023 13:58:41 +02:00 Committer: Ingo Molnar CommitterDate: Wed, 19 Jul 2023 09:43:58 +02:00 sched/fair: Remove sched_feat(START_DEBIT) With the introduction of avg_vruntime() there is no need to use worse approximations. Take the 0-lag point as starting point for inserting new tasks. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Ingo Molnar Link: https://lore.kernel.org/r/20230531124603.722361178@infradead.org --- kernel/sched/fair.c | 21 +-------------------- kernel/sched/features.h | 6 ------ 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index bb54606..fc43482 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -906,16 +906,6 @@ static u64 sched_slice(struct cfs_rq *cfs_rq, struct s= ched_entity *se) return slice; } =20 -/* - * We calculate the vruntime slice of a to-be-inserted task. - * - * vs =3D s/w - */ -static u64 sched_vslice(struct cfs_rq *cfs_rq, struct sched_entity *se) -{ - return calc_delta_fair(sched_slice(cfs_rq, se), se); -} - #include "pelt.h" #ifdef CONFIG_SMP =20 @@ -4862,16 +4852,7 @@ static inline bool entity_is_long_sleeper(struct sch= ed_entity *se) static void place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) { - u64 vruntime =3D cfs_rq->min_vruntime; - - /* - * The 'current' period is already promised to the current tasks, - * however the extra weight of the new task will slow them down a - * little, place the new task so that it fits in the slot that - * stays open at the end. - */ - if (initial && sched_feat(START_DEBIT)) - vruntime +=3D sched_vslice(cfs_rq, se); + u64 vruntime =3D avg_vruntime(cfs_rq); =20 /* sleeps up to a single latency don't count. */ if (!initial) { diff --git a/kernel/sched/features.h b/kernel/sched/features.h index ee7f23c..fa828b3 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -7,12 +7,6 @@ SCHED_FEAT(GENTLE_FAIR_SLEEPERS, true) =20 /* - * Place new tasks ahead so that they do not starve already running - * tasks - */ -SCHED_FEAT(START_DEBIT, true) - -/* * Prefer to schedule the task we woke last (assuming it failed * wakeup-preemption), since its likely going to consume data we * touched, increases cache locality.