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 717CBC27C4F for ; Thu, 13 Jun 2024 08:51:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 05A6F6B00A5; Thu, 13 Jun 2024 04:51:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 009B16B00B7; Thu, 13 Jun 2024 04:51:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DEC3E6B00B8; Thu, 13 Jun 2024 04:51:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id C01C76B00B6 for ; Thu, 13 Jun 2024 04:51:32 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 650D680822 for ; Thu, 13 Jun 2024 08:51:32 +0000 (UTC) X-FDA: 82225246824.05.628E0B9 Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51]) by imf03.hostedemail.com (Postfix) with ESMTP id CBA872000A for ; Thu, 13 Jun 2024 08:51:28 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=none; spf=pass (imf03.hostedemail.com: domain of shikemeng@huaweicloud.com designates 45.249.212.51 as permitted sender) smtp.mailfrom=shikemeng@huaweicloud.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718268688; 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; bh=G7kYmorTUZtwGeTUycBA+u5DyPQkvEaAHFtHXgv+Gmo=; b=gKQqZ02JfDFJr1XsdxFWC9Ui2zzx1NJXDwVutnaeQm3MN3H1U9x7aCWWOtymw+6jQx16kq JH8yZOg8qh7GGRGLwl+vvbhtFkJRYcuJWe7mmEpNzru6KLC5yi+nfhaHkQEMw5+NHINe3y ovwjLxbjn420j+/LXK4OCUdh2bk6DJ8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718268688; a=rsa-sha256; cv=none; b=EaidxOT8dQG3r5JaBDNZ62yzbyc3HNe5a2fwb0areDH9TalmXCHfPon7U4nEn8Ri6CqZi2 bQotlCalZWH8cT032q8pkkv3MmfCsuHgxqa/2zZsZdfw6oPeS8d4CM4+YHUuh5XiE4PUzE 3FYcIrZea+abHj9k4VofMvvFhyJ1fao= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=none; spf=pass (imf03.hostedemail.com: domain of shikemeng@huaweicloud.com designates 45.249.212.51 as permitted sender) smtp.mailfrom=shikemeng@huaweicloud.com; dmarc=none Received: from mail.maildlp.com (unknown [172.19.163.235]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4W0GNM3QQHz4f3jtR for ; Thu, 13 Jun 2024 16:51:15 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.252]) by mail.maildlp.com (Postfix) with ESMTP id 1ADAD1A0572 for ; Thu, 13 Jun 2024 16:51:22 +0800 (CST) Received: from [10.174.178.129] (unknown [10.174.178.129]) by APP3 (Coremail) with SMTP id _Ch0CgAnM5sIs2pmo8qMPA--.64899S2; Thu, 13 Jun 2024 16:51:22 +0800 (CST) Subject: Re: [PATCH v3] writeback: factor out balance_wb_limits to remove repeated code To: Andrew Morton Cc: willy@infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20240606033547.344376-1-shikemeng@huaweicloud.com> <20240611145256.41a857beb521df61cff1695a@linux-foundation.org> From: Kemeng Shi Message-ID: <8c896957-7728-ff4b-09ee-f13d5c8e8ede@huaweicloud.com> Date: Thu, 13 Jun 2024 16:51:20 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 MIME-Version: 1.0 In-Reply-To: <20240611145256.41a857beb521df61cff1695a@linux-foundation.org> Content-Type: text/plain; charset=gbk Content-Transfer-Encoding: 7bit X-CM-TRANSID:_Ch0CgAnM5sIs2pmo8qMPA--.64899S2 X-Coremail-Antispam: 1UD129KBjvJXoW7ZF17Zr4Uur4UZF43CF1xXwb_yoW8tr1rpF Z2ya1jyr4DJF4fXrnxAay7Z34aqrs7GF43Cry7Jws3tr43Kr1xKFyfWr40gFW7Cr9rG345 Zr4Dtas7Gw1FvFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUyCb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxV AFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2 j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7x kEbVWUJVW8JwACjcxG0xvEwIxGrwCYjI0SjxkI62AI1cAE67vIY487MxAIw28IcxkI7VAK I48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7 xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxGrwCI42IY6xII jxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw2 0EY4v20xvaj40_WFyUJVCq3wCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF 7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x07UE-erUUUUU= X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-Stat-Signature: 78tnyardhuubes54twy6pr7xf5s3mbr5 X-Rspamd-Queue-Id: CBA872000A X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1718268688-232582 X-HE-Meta: U2FsdGVkX194eh16vtykPgCKmdaYHiXW3NXM4q0tc1VkksgBH6IZR/Iuu02geedeJp0L9RxjitSkKyfqnWurrVtqXr8S7BGjA8ze4QuyPPeGldJll/lcooPa34Z0XIjD1fhykHWFiazJjlUzBF9ByHkrqnZbHbIjwaCEKtCQHtFcEKNAEYPgds/WpGlucvgbDC6JBd7FyVZfaH8cPY/JKEsH18fp0eI2JHdNSdMYUIcDeYlzvSTfE35RTRmkBYUibgH/es9+VBcP7SEo2Qskr6GaDnAeKoAcbdaajIAihwia2EgNLXW/LmFeu7QQTlkI6/AP0A3x4VPxZtVNC36SezDMxh0SENT269wj2kvhCLKyC/AoFk9k/6Xn0Zfj+ppIZy+8e2hWUH/ouaxfM8ufDuA3gY9OwgJGERymWmrA8QhJRuVyo0yVpdhl1+97Ylj6R/Msevdr/dkcfvkF/BSRhJ0wyoXSX6vl9YNJUhxc2m66aaNWb3EC5PhmZiQmxgvjC8b7NNEY9POzUOQpU1yuDp35G5zIdDJ6+ZAna7Kfpeix5R1xRCwp2CoErIUVt3+iqIZjgONFqZZ202l4Amu41OqG6z87jCSejEdBZiWs52WN0OcKXRAuMEbvziciTpvWaCDupzMl5RvIYXvoFfa35T8o+80MOfjhknDGWwHz1xD8GKCiWDMjRnH8sEVj2lyyQc1Uh8CwvNWLzKrg+mbrHbIK2VWImZFwiiWarTL1Zmdb/ngiM6VTZsj34KPCNPiPwJyQEnJWkVsPMnLYb5VLeEdKK/4JxdXaBs5StfY9xiDzyOjLkHYWSjqZtEr3hHDE9FaySVvvmwC9CEd21H5HqY3m8HsLEdsX6bjYqm3IAKIKAyudNbT7yv7c7kwzHo9UQTXHghrjjU3xGdBAIKprOf3EmzltCUbFq2hciNmP9POZWbKEne97I/wgVH1Kx1YvlhIx1vbyDV3yXAQbm+o EqWs24tf lCF9dpbzjnbtt6fyLjFfJMum5juT47eX/L6s407rJg+E6/CwTW++D4fAXJzMcNaEam4PtXYieEYAm5uAWQ1ME5HbOc5lANjCco+859A1hXWQsLQjHk8QXJ/VhUbkiXNXudw92sgHls6BAETRu6bFboys1VlbSX78ozpUsdHhseVwB0POtMAzNfMIaUOksGHxL9RqJLemY/jtORCTgac1G1YDAQ6ipQqw2VvyKASbY+78B5pkPQxcm4zllpHUZa/ScW95crvjMtISPrcQhJLDYemMoTQ== 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: on 6/12/2024 5:52 AM, Andrew Morton wrote: > On Thu, 6 Jun 2024 11:35:47 +0800 Kemeng Shi wrote: > >> Factor out balance_wb_limits to remove repeated code >> >> Signed-off-by: Kemeng Shi >> --- >> mm/page-writeback.c | 25 +++++++++++++++++-------- >> 1 file changed, 17 insertions(+), 8 deletions(-) >> >> diff --git a/mm/page-writeback.c b/mm/page-writeback.c >> index bf050abd9053..f611272d3c5b 100644 >> --- a/mm/page-writeback.c >> +++ b/mm/page-writeback.c >> @@ -1783,6 +1783,21 @@ static inline void wb_dirty_exceeded(struct dirty_throttle_control *dtc, >> ((dtc->dirty > dtc->thresh) || strictlimit); >> } >> >> +/* >> + * The limits fileds dirty_exceeded and pos_ratio won't be updated if wb is >> + * in freerun state. Please don't use these invalid fileds in freerun case. > > s/fileds/fields/. I queued a fix for this. Thanks for fixing this. > >> + */ >> +static void balance_wb_limits(struct dirty_throttle_control *dtc, >> + bool strictlimit) >> +{ >> + wb_dirty_freerun(dtc, strictlimit); >> + if (dtc->freerun) >> + return; >> + >> + wb_dirty_exceeded(dtc, strictlimit); >> + wb_position_ratio(dtc); >> +} >> + >> /* >> * balance_dirty_pages() must be called by processes which are generating dirty >> * data. It looks at the number of dirty pages in the machine and will force >> @@ -1869,12 +1884,9 @@ static int balance_dirty_pages(struct bdi_writeback *wb, >> * Calculate global domain's pos_ratio and select the >> * global dtc by default. >> */ >> - wb_dirty_freerun(gdtc, strictlimit); >> + balance_wb_limits(gdtc, strictlimit); >> if (gdtc->freerun) >> goto free_running; > > Would it be neater to do > > if (balance_wb_limits(...)) > goto free_running; > > ? Here are two reasons why I retrieve freerun info from dtc: 1. Retrieve freerun and other calculated info from balance_domain_limits and balance_wb_limits in the same way. Personly think it's cleaner. 2. It's more clear that we stop to limit pages because of freerun state of wb. > > That would require a balance_wb_limits() comment update and probably > name change. Just a thought. > >