All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Odin Ugedal <odin@uged.al>, Peter Zijlstra <peterz@infradead.org>,
	Ben Segall <bsegall@google.com>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 5.4 49/51] sched/fair: Fix CFS bandwidth hrtimer expiry type
Date: Wed, 14 Jul 2021 15:45:11 -0400	[thread overview]
Message-ID: <20210714194513.54827-49-sashal@kernel.org> (raw)
In-Reply-To: <20210714194513.54827-1-sashal@kernel.org>

From: Odin Ugedal <odin@uged.al>

[ Upstream commit 72d0ad7cb5bad265adb2014dbe46c4ccb11afaba ]

The time remaining until expiry of the refresh_timer can be negative.
Casting the type to an unsigned 64-bit value will cause integer
underflow, making the runtime_refresh_within return false instead of
true. These situations are rare, but they do happen.

This does not cause user-facing issues or errors; other than
possibly unthrottling cfs_rq's using runtime from the previous period(s),
making the CFS bandwidth enforcement less strict in those (special)
situations.

Signed-off-by: Odin Ugedal <odin@uged.al>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Ben Segall <bsegall@google.com>
Link: https://lore.kernel.org/r/20210629121452.18429-1-odin@uged.al
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 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 d3f4113e87de..94bf2e44a45a 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -4786,7 +4786,7 @@ static const u64 cfs_bandwidth_slack_period = 5 * NSEC_PER_MSEC;
 static int runtime_refresh_within(struct cfs_bandwidth *cfs_b, u64 min_expire)
 {
 	struct hrtimer *refresh_timer = &cfs_b->period_timer;
-	u64 remaining;
+	s64 remaining;
 
 	/* if the call-back is running a quota refresh is already occurring */
 	if (hrtimer_callback_running(refresh_timer))
@@ -4794,7 +4794,7 @@ static int runtime_refresh_within(struct cfs_bandwidth *cfs_b, u64 min_expire)
 
 	/* is a quota refresh about to occur? */
 	remaining = ktime_to_ns(hrtimer_expires_remaining(refresh_timer));
-	if (remaining < min_expire)
+	if (remaining < (s64)min_expire)
 		return 1;
 
 	return 0;
-- 
2.30.2


  parent reply	other threads:[~2021-07-14 19:58 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-14 19:44 [PATCH AUTOSEL 5.4 01/51] ARM: dts: gemini: rename mdio to the right name Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 02/51] ARM: dts: gemini: add device_type on pci Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 03/51] ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288 Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 04/51] arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 05/51] ARM: dts: rockchip: Fix the timer clocks order Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 06/51] ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 07/51] ARM: dts: rockchip: Fix power-controller node names for rk3066a Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 08/51] ARM: dts: rockchip: Fix power-controller node names for rk3188 Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 09/51] ARM: dts: rockchip: Fix power-controller node names for rk3288 Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 10/51] arm64: dts: rockchip: Fix power-controller node names for px30 Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 11/51] arm64: dts: rockchip: Fix power-controller node names for rk3328 Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 12/51] reset: ti-syscon: fix to_ti_syscon_reset_data macro Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 13/51] ARM: brcmstb: dts: fix NAND nodes names Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 14/51] ARM: Cygnus: " Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 15/51] ARM: NSP: " Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 16/51] ARM: dts: BCM63xx: Fix " Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 17/51] ARM: dts: Hurricane 2: " Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 18/51] ARM: dts: imx25-pinfunc: Fix gpio function name for pads GPIO_[A-F] Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 19/51] ARM: dts: imx6: phyFLEX: Fix UART hardware flow control Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 20/51] ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 21/51] rtc: mxc_v2: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 22/51] kbuild: sink stdout from cmd for silent build Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 23/51] ARM: dts: am335x: align GPIO hog names with dt-schema Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 24/51] ARM: dts: am437x: align gpio " Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 25/51] ARM: dts: omap3: " Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 26/51] ARM: dts: omap5-board-common: " Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 27/51] ARM: dts: dra7x-evm: Align GPIO " Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 28/51] ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 29/51] ARM: dts: am437x-gp-evm: " Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 30/51] ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 31/51] ARM: dts: stm32: fix RCC node name on stm32f429 MCU Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 32/51] ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 33/51] arm64: dts: juno: Update SCPI nodes as per the YAML schema Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 34/51] ARM: dts: rockchip: fix supply properties in io-domains nodes Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 35/51] ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 36/51] ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15 Sasha Levin
2021-07-14 19:44   ` Sasha Levin
2021-07-14 19:44 ` [PATCH AUTOSEL 5.4 37/51] soc/tegra: fuse: Fix Tegra234-only builds Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 38/51] firmware: tegra: bpmp: " Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 39/51] arm64: dts: ls208xa: remove bus-num from dspi node Sasha Levin
2021-07-14 19:45   ` Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 40/51] arm64: dts: imx8mq: assign PCIe clocks Sasha Levin
2021-07-14 19:45   ` Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 41/51] thermal/core: Correct function name thermal_zone_device_unregister() Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 42/51] kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 43/51] rtc: max77686: Do not enforce (incorrect) interrupt trigger type Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 44/51] scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8 Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 45/51] scsi: libsas: Add LUN number check in .slave_alloc callback Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 46/51] scsi: be2iscsi: Fix some missing space in some messages Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 47/51] scsi: libfc: Fix array index out of bound exception Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 48/51] scsi: qedf: Add check to synchronize abort and flush Sasha Levin
2021-07-14 19:45 ` Sasha Levin [this message]
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 50/51] s390: introduce proper type handling call_on_stack() macro Sasha Levin
2021-07-14 19:45 ` [PATCH AUTOSEL 5.4 51/51] cifs: prevent NULL deref in cifs_compose_mount_options() Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210714194513.54827-49-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=bsegall@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=odin@uged.al \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.