From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6F69E77197 for ; Thu, 9 Jan 2025 06:29:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49D346B0092; Thu, 9 Jan 2025 01:29:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 44C526B0093; Thu, 9 Jan 2025 01:29:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2ECBD6B0096; Thu, 9 Jan 2025 01:29:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 0E62B6B0092 for ; Thu, 9 Jan 2025 01:29:40 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 80C1B8175A for ; Thu, 9 Jan 2025 06:29:39 +0000 (UTC) X-FDA: 82986937278.22.5A1A752 Received: from fhigh-b3-smtp.messagingengine.com (fhigh-b3-smtp.messagingengine.com [202.12.124.154]) by imf19.hostedemail.com (Postfix) with ESMTP id 77CCF1A000A for ; Thu, 9 Jan 2025 06:29:37 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=devkernel.io header.s=fm3 header.b=pAeiMof+; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=NRoZ2+FE; dmarc=none; spf=pass (imf19.hostedemail.com: domain of shr@devkernel.io designates 202.12.124.154 as permitted sender) smtp.mailfrom=shr@devkernel.io ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736404177; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ZMjiqLnfBZTWDx7xIn7ilq0br1Tm88oK/mnUP4PZ4z4=; b=cgz6IzR/5m2PBnofDoNiLL+PBoc1zQRV3ZgLPk7kR3WQYypwg37JzdKIOUj0fjet13vyl6 IWcSurl64o6XkJn8IhBG3OtrUjaQSrjQujCQbXg2FrKxDDHRl3OWNKTMbbW+RY54nBlvC+ aZXA6qP6lQDLszXMbKCTnNQIPcqHcCw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736404177; a=rsa-sha256; cv=none; b=pzLtQ4B1U7i70qLE24pfTdDLsQaSUdFCGRXjDb5Nwtc5IbjX2fAN14k+wBuHdCpTbqwA9Q G5FgTVVRhYOhPPK5R141QV5LKabVR2yh3LgH7pjPKDPXxGIWNBXrauioeWE72+i9hKqwba ktsx88T7ytuOPUNcAzvszaGK8rDjqcc= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=devkernel.io header.s=fm3 header.b=pAeiMof+; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=NRoZ2+FE; dmarc=none; spf=pass (imf19.hostedemail.com: domain of shr@devkernel.io designates 202.12.124.154 as permitted sender) smtp.mailfrom=shr@devkernel.io Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfhigh.stl.internal (Postfix) with ESMTP id 6703D254014E; Thu, 9 Jan 2025 01:29:36 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Thu, 09 Jan 2025 01:29:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=devkernel.io; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1736404176; x=1736490576; bh=ZMjiqLnfBZ TWDx7xIn7ilq0br1Tm88oK/mnUP4PZ4z4=; b=pAeiMof+j0WbW88PCMTB/I8MJw 6t6Rh//7NulpIJ7sPnOGWnY0htrsdLydY8IMRQZ4TBNdKGJUqJ9bMLluT6m6CI0z klBSSiZ6fs/mH8g8iMM1hs35pgH3/nBd1Co0rbgllimrbBVm/lZ47bGMHjtTjqI3 QjYwssdiPsq/Mp3AcGZkQKkvJlUpnCKeQDt7LjKO5z7z+Q+6B+p4n9qdGVA3zm4Z rMPYHhHUOQRgr46B5NFVwtGRLPEGze1KSgKV93oi/brCJelblDDC01tpXMn75mWK vubtKPGcH59GklzWda0/Wq50mT9qdJX4698bL+Z0CmgJWGn4oNveMtXh/Yrw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1736404176; x=1736490576; bh=ZMjiqLnfBZTWDx7xIn7ilq0br1Tm88oK/mn UP4PZ4z4=; b=NRoZ2+FERc7au3YYpE4KDsEJrbMI8UCnafPph6p3UzbJLICUwmV 9qWxBBCzXcvlBVXKHeJkS9SLr6XsD6BAx4Kir918YSt5z+7ED3PnOHMe8Ppo55Cj Zfw31IwfEZWXQ9a+uka1eQLMKYGpehCEml9RLLonP9mt0TN1cekTB3v01hRQ5MJ1 67881WF9QmoYZGp4ZAEMb5NP98ytUgQ2CMGSQn+YkXGjszco/I3YuEThaQOlDdDC HUzcrT16KUIpfXoG7x+N/eLHuUzMIoZYYiJ5z7zwCdDcKVMOVUzAZNlNGkLa/cgc uZm14K3iCG/sYZlig113QrCnxmpd0QOyzSQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrudeghedgleeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfhgfhffvvefuffgjkfggtgesthdtredttdertden ucfhrhhomhepufhtvghfrghnucftohgvshgthhcuoehshhhrseguvghvkhgvrhhnvghlrd hioheqnecuggftrfgrthhtvghrnhepveelgffghfehudeitdehjeevhedthfetvdfhledu tedvgeeikeeggefgudeguedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomhepshhhrhesuggvvhhkvghrnhgvlhdrihhopdhnsggprhgtphhtthho peeipdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehlihhnuhigqdhfshguvghvvg hlsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtoheplhhinhhugidqmhhmsehk vhgrtghkrdhorhhgpdhrtghpthhtoheprghkphhmsehlihhnuhigqdhfohhunhgurghtih honhdrohhrghdprhgtphhtthhopeiiiihqqhdtuddtfedrhhgvhiesghhmrghilhdrtgho mhdprhgtphhtthhopeifihhllhihsehinhhfrhgruggvrggurdhorhhgpdhrtghpthhtoh epuggrvhhiugesrhgvughhrghtrdgtohhm X-ME-Proxy: Feedback-ID: i84614614:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 9 Jan 2025 01:29:33 -0500 (EST) References: <20250108014723.166637-1-shr@devkernel.io> User-agent: mu4e 1.10.3; emacs 29.4 From: Stefan Roesch To: David Hildenbrand Cc: willy@infradead.org, zzqq0103.hey@gmail.com, akpm@linux-foundation.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH v2] mm: fix div by zero in bdi_ratio_from_pages Date: Wed, 08 Jan 2025 22:28:06 -0800 In-reply-to: Message-ID: <87seps7b5f.fsf@devkernel.io> MIME-Version: 1.0 Content-Type: text/plain X-Stat-Signature: m54dzcs39tmo9a9pjxbf1wj9rqbir65h X-Rspamd-Queue-Id: 77CCF1A000A X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1736404177-496817 X-HE-Meta: U2FsdGVkX19g4NV+U4IfW/2SQK23/wZZti4B8x89nzBbsfspN9n9LgZS0BExxVZ9rFeZr/lKGt0NUJza4LLxdIrSQNZX6armBpd0aE/bZP6xXYzp/oHJ7blw3yocMpVUriCeJnw7p0EB+9QH8HkWJdM03DeJmHqxDjBgfCiAYhBoV477UskUAtzBwieoHsx6IQY7pwwYPeve7b2tBuMxiTmO+FYXKLHaw9Dygn51c1hKiAv0dYKHn+hfX4mO4fRKzd2AwjaPSL2ZKaeXaG7wNEYatuP1H0gETpcSGbQKEh23CezdcDBuv0zeQnDNr2t7F9JBQW67cAqaK7m/wyjNRo80sgrZun9jZcOahY9ldH/hPo4W99rgctuaP7/uT+cO7n1PPrvvNgI0nsSEZ5aPI1Ee4TreDHwzpTFYZYo+KdU7+O0i62EaXoZUQnbGAc35aSGOtLtFEJTEfoBN9WceOimKXIsxxAOo2vdsGWmewOTz18mkyIieboDR7X84mb3RdOZ/3EFmQlum6b89iUVEku3sSzliss9nAsWztIfRdNkZOXHf8GIqwof9LhZcRB2vwagCTruOXU2pjT9VsTTqhN6fsLVKFWhHSFBwHjqxGfmAJetBahsOBOqJ1IdpLW8CZ2CQmJjs/FxfCgkg9O/aAw6g16chmKGBgRvIosB0GPDncPEfz0LPkl036SKXnqCJmCR0EdV+wgFO3qxSWgUuDPpfzHA4e2BhY9r3LH3MsZ0jZ8ps+HBGs/EX54H1teX1V+ZgeToLUJXO7u72PzwoMdjH+B2aD4A7kKvXh6lm/MvTZyAa17YndmVgZgvqWiq+TeEFVvGajMxSCOaHWtyP0gPkx9VWNQ/9hnWrQ9DAOuw81E0EFQ1v7ejAWAWwL6nNJVGIHNZEZwNohQgpylG2jB+TrIHR9l28CrpvO5MnjxbmnuipaBg/fL2q1/5YM3N/wRpNnUr3kA/DXgPUD3b Xc/LtEj/ 33aqRCGxa2i1Qhjf+3y/KhnNE14z+UeK5vcfmVeTdRl996QAHMISp5zmQRNf448o7TF3xsqijKAjZUcwZeeMKBPFBBCaBo1Oj7o+7NfhsaQfpGvqXE0jAoHE86mNtCN5jQUQy09hmfcX5/TYOez4nGaHJ0CqR2l77kKOmycT8E67rJprtZ2dbb6vVcna2rWkzA3aJiWmjDIyOUjsQZcswWyfkJDgmPFE3Kj1Eqe+ut1gj6H1ifuEQW/NVn21IfU7zgcwBXy/7xcn3rF8y9/NUIBIdyzQBlKnwfHwS9luZxGKjwYQUwPAEM68twdX3htZT1W8dl0b4L0dXPF4sEEe0o312YnxHPoOmubPutsrmf2tNiFzV0eZwF3ob4RHT13tGTqUY7Ejb151cSltskUOOfrdsYg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: David Hildenbrand writes: ... > > I would have done it slightly differently, something like: > > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c > index d213ead956750..4b02f18f7d01f 100644 > --- a/mm/page-writeback.c > +++ b/mm/page-writeback.c > @@ -685,13 +685,15 @@ static int bdi_check_pages_limit(unsigned long pages) > return 0; > } > -static unsigned long bdi_ratio_from_pages(unsigned long pages) > +static long bdi_ratio_from_pages(unsigned long pages) > { > unsigned long background_thresh; > unsigned long dirty_thresh; > unsigned long ratio; > global_dirty_limits(&background_thresh, &dirty_thresh); > + if (!dirty_thresh) > + return -EINVAL; > ratio = div64_u64(pages * 100ULL * BDI_RATIO_SCALE, dirty_thresh); > return ratio; > @@ -790,13 +792,15 @@ int bdi_set_min_bytes(struct backing_dev_info *bdi, u64 min_bytes) > { > int ret; > unsigned long pages = min_bytes >> PAGE_SHIFT; > - unsigned long min_ratio; > + long min_ratio; > ret = bdi_check_pages_limit(pages); > if (ret) > return ret; > min_ratio = bdi_ratio_from_pages(pages); > + if (min_ratio < 0) > + return min_ratio; > return __bdi_set_min_ratio(bdi, min_ratio); > } > @@ -809,13 +813,15 @@ int bdi_set_max_bytes(struct backing_dev_info *bdi, u64 > max_bytes) > { > int ret; > unsigned long pages = max_bytes >> PAGE_SHIFT; > - unsigned long max_ratio; > + long max_ratio; > ret = bdi_check_pages_limit(pages); > if (ret) > return ret; > max_ratio = bdi_ratio_from_pages(pages); > + if (min_ratio < 0) I assume you meant max_ratio. > + return min_ratio; > return __bdi_set_max_ratio(bdi, max_ratio); > } > -- Cheers, > I'll use your recommendation for the next version of the patch.