Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp947026ybz; Fri, 1 May 2020 11:26:28 -0700 (PDT) X-Google-Smtp-Source: APiQypJc4kaOrFzd0N4G2fdFrZ9Uwwsd/JHe4UgSOaV7ahpGqhuUASWkUsp8B2pFdnNZiPuw5WBQ X-Received: by 2002:a17:907:20f7:: with SMTP id rh23mr4340010ejb.71.1588357587980; Fri, 01 May 2020 11:26:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588357587; cv=none; d=google.com; s=arc-20160816; b=pfz4JO9xg0n94PM/LK0K51UOPClQKdpTJTZfu1X9p6s+/ujRrbKLl1xdwFEDqCLATF LfGNvjcSLb7QH2h627bkEN9gsOPsHxgAUna9Kg92iEiadaBPsCc80bH0jj8xSMhzCKJg XGjlrpJ/bP8J+H7Dnznc8CyAsThw79nCWMfZr2n1EBOeYYffiJa7O2TfAl4oH9NSd9he 62w+5yTHHIo5chF+yjuKngOE9CM1k86bNKmVwjf3Fue8IInFsdRhqdcZMPavaytPKMqH tt2jRqqe0P7nOAkzx0OD0sQ8AQ5Cnbm0a9VAhPbnTzn/+6fIAvsQnBEJwjqsFRh2g6Vd xGig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :robot-unsubscribe:robot-id:message-id:mime-version:references :in-reply-to:cc:subject:to:reply-to:from:date; bh=W76y5ZmlkOwQL22hQjgnO4Jf4VzhL6/S7d11FXDiIsg=; b=WP/Nx5GSU/NqGktHcQpDDwmHnsiclMiODYYT5efAwRdDmrc1d9r9nNVLuVHAigT//V E9LJBXotPhBdZLIyWTbo29EcEHgVxFRoP7R7QGYKSOqR0rwhCkcHQVwFDS1bsRNS2uki XDPH3W1ELlhmty0xiVieIlQXOreej6JBGXJedCc/oiX+5PEu07KLWnA7oGdQtKtob0l2 rv3n0YQy/3Q8ex+fwg3Rw3AZcdCFWLxEJLYPLxLvkB0ig0KmsMNvrVSwUAYnoSeVdwLQ crCj3Q9LGNMXKxJChgf/MCn/LymLPuYghk5pp2GQTii3rjdyTEQpOKKTcoGN1yTmWdsj Tl2g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u20si2672599eda.9.2020.05.01.11.26.04; Fri, 01 May 2020 11:26:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730968AbgEASXn (ORCPT + 99 others); Fri, 1 May 2020 14:23:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40360 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1730566AbgEASWV (ORCPT ); Fri, 1 May 2020 14:22:21 -0400 Received: from Galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6F3BBC08E859; Fri, 1 May 2020 11:22:21 -0700 (PDT) Received: from [5.158.153.53] (helo=tip-bot2.lab.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1jUaIb-0003Xw-8j; Fri, 01 May 2020 20:22:09 +0200 Received: from [127.0.1.1] (localhost [IPv6:::1]) by tip-bot2.lab.linutronix.de (Postfix) with ESMTP id CCF371C0085; Fri, 1 May 2020 20:22:08 +0200 (CEST) Date: Fri, 01 May 2020 18:22:08 -0000 From: "tip-bot2 for Huaixin Chang" Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: sched/core] sched/fair: Refill bandwidth before scaling Cc: Huaixin Chang , "Peter Zijlstra (Intel)" , Ben Segall , Phil Auld , x86 , LKML In-Reply-To: <20200420024421.22442-3-changhuaixin@linux.alibaba.com> References: <20200420024421.22442-3-changhuaixin@linux.alibaba.com> MIME-Version: 1.0 Message-ID: <158835732876.8414.16277366835627437779.tip-bot2@tip-bot2> X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org 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: 5a6d6a6ccb5f48ca8cf7c6d64ff83fd9c7999390 Gitweb: https://git.kernel.org/tip/5a6d6a6ccb5f48ca8cf7c6d64ff83fd9c7999390 Author: Huaixin Chang AuthorDate: Mon, 20 Apr 2020 10:44:21 +08:00 Committer: Peter Zijlstra CommitterDate: Thu, 30 Apr 2020 20:14:40 +02:00 sched/fair: Refill bandwidth before scaling In order to prevent possible hardlockup of sched_cfs_period_timer() loop, loop count is introduced to denote whether to scale quota and period or not. However, scale is done between forwarding period timer and refilling cfs bandwidth runtime, which means that period timer is forwarded with old "period" while runtime is refilled with scaled "quota". Move do_sched_cfs_period_timer() before scaling to solve this. Fixes: 2e8e19226398 ("sched/fair: Limit sched_cfs_period_timer() loop to avoid hard lockup") Signed-off-by: Huaixin Chang Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Ben Segall Reviewed-by: Phil Auld Link: https://lkml.kernel.org/r/20200420024421.22442-3-changhuaixin@linux.alibaba.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 c0216ef..fac5b2f 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5159,6 +5159,8 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer) if (!overrun) break; + idle = do_sched_cfs_period_timer(cfs_b, overrun, flags); + if (++count > 3) { u64 new, old = ktime_to_ns(cfs_b->period); @@ -5188,8 +5190,6 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer) /* reset count so we don't come right back in here */ count = 0; } - - idle = do_sched_cfs_period_timer(cfs_b, overrun, flags); } if (idle) cfs_b->period_active = 0;