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 0E0E5C35274 for ; Mon, 18 Dec 2023 18:21:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 831436B0096; Mon, 18 Dec 2023 13:21:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E0716B009B; Mon, 18 Dec 2023 13:21:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A8CF6B00A0; Mon, 18 Dec 2023 13:21:23 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 5A8EA6B0096 for ; Mon, 18 Dec 2023 13:21:23 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 23342A0254 for ; Mon, 18 Dec 2023 18:21:23 +0000 (UTC) X-FDA: 81580756446.19.421C857 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf13.hostedemail.com (Postfix) with ESMTP id 2157C20014 for ; Mon, 18 Dec 2023 18:21:20 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=gWY4ak9p; dmarc=none; spf=pass (imf13.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702923681; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ELFDi7wMfFhD1NtmEVa86faG1l4otdZmywHdVo1dbOw=; b=C5PzXZYVdn8BoQM9e3ff5HcVbMvv9toDCeqb/D/fhAGOXl/7S3nnW9YrRce3Ez9E57KMyu DRimHUrNq+PzdYSGE1bZZyooNUCBQQqio3+8XW8PyqJLfHsSSfckPghmQIVSDQEFkmLDQL ha8Kw570M1EdQIWEDFnbQtjZ47i5oGg= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=gWY4ak9p; dmarc=none; spf=pass (imf13.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702923681; a=rsa-sha256; cv=none; b=12lwiaaH6ZO09aERflZGt5+WQynLuXZE3b2WtkorAr9x19QPyb+DimqvlDsmUQyepa25jJ 4QaeUW6jKKJ8Kd/oiBgLOJW0HvKB8E0tegjEVVyNoQ5ca9xOXgm4f8P8NkN37fOTncBPn6 bAQMlC/O0uDxFBF7w/Y9bkJFFkEH3XI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id 37024B8100E; Mon, 18 Dec 2023 18:21:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E415C433C7; Mon, 18 Dec 2023 18:21:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1702923678; bh=9bcgPOv6UmU1GeS75GFbmWga4l75E2/oRtMHdcoeT9Q=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=gWY4ak9pO1B63mLNVWNRJeCKrRUrTZ0qx0UHVCp47Y8QqXG9dcGnZIf5db3rQftdI Sp3kacllTpr5yRica6q9UyB6ntXw73TgxJlNLfeTCsCnG+3yu7t9k5K5saUyOFza70 M9+/UJO1tcuvMdDMOV8vgg5vcAlDtftZ2NYkBb0M= Date: Mon, 18 Dec 2023 10:21:17 -0800 From: Andrew Morton To: Jingbo Xu Cc: shr@devkernel.io, linux-mm@kvack.org, linux-kernel@vger.kernel.org, joseph.qi@linux.alibaba.com Subject: Re: [PATCH] mm: fix arithmetic for bdi min_ratio and max_ratio Message-Id: <20231218102117.c91ab02353ff76b952f3ec9e@linux-foundation.org> In-Reply-To: <20231218031640.77983-1-jefflexu@linux.alibaba.com> References: <20231218031640.77983-1-jefflexu@linux.alibaba.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 2157C20014 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: zi3xoxep5c196m9fd18qqykcjaebk98p X-HE-Tag: 1702923680-531599 X-HE-Meta: U2FsdGVkX1+siSxfx78UXEUnj5QlAmqfs0TXN3wxWytvvGP21pWbQIy4/GrRJPmC8I0sk4BrgwwHp7R6sN2JXNwkRoRaZZu5LfON+T2+cqYLDkTIUn55xHIAbkgDsGqFOOmuCT/LjjLZY4PWrdRC6kXGESmEczDGFYC0YhIbLQqCYE76UslAi2cpZ9vu++WV26FSc4vvXS87Sw7C/0VSu40NggX2jE2+gjZ9Mgz32ld6koX+uh24v1eWUmmXmmPlHTAONGtQuXMo/Buf3tRCIeFWnLt2KD0AzIuP0ZjGEAGluBPS9znRc623NP7AA6QwpsPKjK1wdsZA3AtbJPH49DcTJw4Eag6b6upOt4lXLlGDi9VFCJCaQhW0VxHopSpeBw2dMl9d0NfBou9FUhbbIJvbSkFTt5SO8qA/gFIkcZ3nhGJGuE9JXQLm4FAE2yFpakZ/MNkctJXyX448c7AsKj7aDmcAVN69nuTggcHUbYCXXCiUNLAcIj9wDNaKFf4lAwkrVbw+EJIE+ETo0sfafafA1SytpYyARnIUT/W8EDiRcUzHrryuU/hWWklJqv+yembDTxOavp1w00xU3BGATIdZ/fgJJtenAJWf97tudIIinN0VidLASE9uePzeygbzXs/x2Fw/upbO5J5bcMZYBUoYugkJquBp8pruReh/F2hJdEWTUXcFTByNA8qUJxbevgXxGJbqaWTfBhy8qF6FOjyUEh1H/7a1jO8upQsbbKTPRt7UMbcr/ZNpoyy4PQtYwLKY32UsHiU/pdQ5L5lWfJBppr8bax9PZ7CglYVrC2womWPUZvHNWI+09bscbMIvRQSxqWPRAV1EX9Uy71iubYp+JyhetlFTr+WwlLIj/YDPYp5n9e13/O8y6W0pkLPIAM6BMraAex4qILfyMLnwvpy2iKC6VVAQb1W3GoRXPRbMEsavDJ2bmJWvwHTPECs5tqI7cb3z7syz3j695+d iWBg5k5g /G8w6BzQDHrFG+DE41q3nnlhFiMEIspxEHH6dvEqdbrgLVc+ix0SdYpLjb40wpITFNeIztYF9vrX8TLemdBn2h20K/wcnHlEp7IrUz5jhtguavE1z++8Q8okji8hMtV7u4RQl/+svc/9Ps9Gzr0DVnAAZiuR6LiEw3hw4yPl6LLD0e2IHd+059P+hh07GBg8KtmTrtze7n9MRf/e3o5sLjKkgFPLpRJcdXa9tDOHDESglBJ7bVEPeIgMaJe8psg4ejLxYXnY9hKXpYnrm0IDDIkFVS5EpWuPaJGoVTD8NAid6MLc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, 18 Dec 2023 11:16:40 +0800 Jingbo Xu wrote: > bdi->[min|max]_ratio are both part per million. Fix the wrong > arithmetic when setting bdi's min_ratio and max_ratio. > > Fixes: efc3e6ad53ea ("mm: split off __bdi_set_max_ratio() function") > Fixes: 8021fb3232f2 ("mm: split off __bdi_set_min_ratio() function") As we have two Fixes:, it would be better to have two patches please. > --- a/mm/page-writeback.c > +++ b/mm/page-writeback.c > @@ -692,7 +692,6 @@ static int __bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ra > > if (min_ratio > 100 * BDI_RATIO_SCALE) > return -EINVAL; > - min_ratio *= BDI_RATIO_SCALE; > > spin_lock_bh(&bdi_lock); > if (min_ratio > bdi->max_ratio) { > @@ -729,7 +728,8 @@ static int __bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ra > ret = -EINVAL; > } else { > bdi->max_ratio = max_ratio; > - bdi->max_prop_frac = (FPROP_FRAC_BASE * max_ratio) / 100; > + bdi->max_prop_frac = div64_u64(FPROP_FRAC_BASE * max_ratio, > + 100UL * BDI_RATIO_SCALE); > } > spin_unlock_bh(&bdi_lock); Does this change have any observable runtime effects? If so, what are they?