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 AC0B2C02180 for ; Wed, 15 Jan 2025 03:59:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 45F15280008; Tue, 14 Jan 2025 22:59:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3E80F280001; Tue, 14 Jan 2025 22:59:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 261C2280008; Tue, 14 Jan 2025 22:59:44 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 06595280001 for ; Tue, 14 Jan 2025 22:59:44 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B59F7160E9E for ; Wed, 15 Jan 2025 03:59:43 +0000 (UTC) X-FDA: 83008332246.05.122A19F Received: from mail-vs1-f46.google.com (mail-vs1-f46.google.com [209.85.217.46]) by imf24.hostedemail.com (Postfix) with ESMTP id DD4D018000A for ; Wed, 15 Jan 2025 03:59:41 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=SSJWjKKv; spf=pass (imf24.hostedemail.com: domain of yuzhao@google.com designates 209.85.217.46 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736913581; 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=DR61vcmdeMZGhVQleCNO6+e/M0pjjESL8+GbuQrmQ70=; b=nPot/Sj17Iz9neNzZ0eay3QD6qaGI3LZZMwBbXjreeKijkJSgAAmddMTqygKv1Xcxmxcp8 OBHu1rhF2jc/KLSSDCZiaQU7LN++MRqHKlyuRIe7F+ya21VLUhygc7NYWfz6pxFRzOMUpq LHh3hjUy3n32HP4nRtCf6Kb9rVIZjK0= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=SSJWjKKv; spf=pass (imf24.hostedemail.com: domain of yuzhao@google.com designates 209.85.217.46 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736913581; a=rsa-sha256; cv=none; b=PrIZ2RhpzbQ9+ujGMc6XZHH6EKrYwpfFrTMyd+6kFG/7syVUMZsKPsFcsJ/bR1FuCgMGrV 4N3TrVEzH+30j3bEKdFuOROKA5BwpKB8l5QW4YPrtmvdShdvEnUDG4SZgu0qnIfwB2H7Vw LBuKDrY6csS2uj3m89ryY38kzlti+Mg= Received: by mail-vs1-f46.google.com with SMTP id ada2fe7eead31-4afde39e360so1995061137.0 for ; Tue, 14 Jan 2025 19:59:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1736913581; x=1737518381; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=DR61vcmdeMZGhVQleCNO6+e/M0pjjESL8+GbuQrmQ70=; b=SSJWjKKvck9ocoxn/ZRUrMpI4mN4mLrNz36koWxq4mwskb7eaz2a+hQI7PIaravCCi LN1eundbbQFe/mv7nzdZQ4eKs61vQzeN8gJQqccowCHI/3fglLaANQ8DLI6doUASi+hc Ak3L+6Pte2Y1lu/XQM/SdsMtscM3DoFXUkXL/+S2VVyzvD+kYpcbCH67kgrIVUVbFUfF BcFnu0GlcWyMdpNL2kuIMt37qa6JUg5b0kCYGwu8Qv++4GDsFSJZxrX2RmDKD14lEBy6 v5KJ8jfzjYlngcMlBJbeJXIHeKDqZVTnV9CayDHIIPhatAGq2rvMWG7216qXwSNVrTCh cZYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736913581; x=1737518381; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DR61vcmdeMZGhVQleCNO6+e/M0pjjESL8+GbuQrmQ70=; b=PDatbAfk9QEccAMdkN3DZcIxBFomXcR9MnL18t+IaP96D/vaKXfP6iVNEIea0WqgqV pb1p+c10SnF5XPVijFlaIqdz3vxZMKuQzG0t+23hHhxHE+DxyA//KxwrDQ4bCwnJC1h2 v3fBgT1hX+9P90uCt27rBWed9HE4nhgfiGWjsxDAJvNuU41489YOH3WHI5j4udnjEP/W s1JLabH+uVcDnWvnRUiE5smV8FIh7SO8+KJZ7PYtaaVZauyzSlPp+Vb2h0xnem5kVMUV kJFJ8MPsMCIaTYIf9VfebovoLCYtOJYd5U3CQiWkC0fbgspXpHK0RiqBeJJMf6wMLRQd h2Uw== X-Forwarded-Encrypted: i=1; AJvYcCVJ/qt9ujPVk4RC5TG7F9A3A+So3WkO9FWo8Nbq2JdXnj629hSfdTGzDYOa0Ycm1PZocj9gHWhibw==@kvack.org X-Gm-Message-State: AOJu0YxqPO/x5rgLY/icL9579xpyapBaONzX1n2e4cvaPHGj+07niSnn GGVuT4Hxkdtqnw4tQ6H1+JNuBiPkuMldvxwMUBBO2K2e3KJS5renOnG2DPmwelbhLGAJIBMG9aJ lo1T3B+7LS8FmyyiI9xMX4gpA0IdRohFTDDQQ X-Gm-Gg: ASbGncuTXjk/aMrukoyrt44i69u+ZsTHHFgYGp3lVpHeJlSNsayQ1Ep1VpO4tTdTZ4/ vZQdh5jDLhMC36MJMjUKkgOtEFfjIFBw600OWr1IJGTdXkmqISku3uycbnemSgriTG9rT6uM= X-Google-Smtp-Source: AGHT+IHbPAOnXr+zwIhC8d+3o5P2bcltrOKMaQvXlsEGCwGMi0uitlY8cVx3QhY41EuKAr+IaeteEg4VIOaBp3tVHuU= X-Received: by 2002:a05:6102:509f:b0:4b2:bc6b:c845 with SMTP id ada2fe7eead31-4b3d0d763b1mr21776038137.6.1736913580812; Tue, 14 Jan 2025 19:59:40 -0800 (PST) MIME-Version: 1.0 References: <20250111091504.1363075-1-chenridong@huaweicloud.com> <20250113155206.GB829144@cmpxchg.org> In-Reply-To: <20250113155206.GB829144@cmpxchg.org> From: Yu Zhao Date: Tue, 14 Jan 2025 20:59:04 -0700 X-Gm-Features: AbW1kvbOtfcLBbfrtWAHlj33Djr1s2_VF4xm3GLpWdBsJqpTpsgX1OurrvRaKGY Message-ID: Subject: Re: [PATCH v7 mm-unstable] mm: vmscan: retry folios written back while isolated for traditional LRU To: Johannes Weiner , "Kirill A . Shutemov" Cc: Chen Ridong , akpm@linux-foundation.org, mhocko@suse.com, yosryahmed@google.com, david@redhat.com, willy@infradead.org, ryan.roberts@arm.com, baohua@kernel.org, 21cnbao@gmail.com, wangkefeng.wang@huawei.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, chenridong@huawei.com, wangweiyang2@huawei.com, xieym_ict@hotmail.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: DD4D018000A X-Stat-Signature: 9czghramcwh5qsc5x4cprqxr388qb3sr X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1736913581-190289 X-HE-Meta: U2FsdGVkX18HlCg2OK7T4UUdOIQTZfv5lkrcHfC59spwqDRnhicbx39KKeAGykAEwilvoUkHbUlJuY9Gf74txWpAzWrSB6t7e8YwUoduooh6xNB4e1hBhLX3TN0moEchktBypNADVxkXwTGvuQrM5Rvhkg1i7aCWsrSj8n/B6D1UPbieuaN5vHQLRDW4+0p3lzS39PaMya5NNOOu8zGvMnAr+CPIMaAmckyfL/mn01hLSFSSeMLCyNAf2extNoQLxIIzaeKDWpioRXqoFgcsTygFMbtygYSy2nj10jGmlnNEEAsyrLYzO3z7bp6ZbAX1hxOJMvKaeQMc6X36QQbqwKrdajWTNPgSxaCDPV9ApPHF3y5EEmzjRendDz6ZAWSEH1Ur0TGdC+MsRFDg70fCbONrv0HIidi8gZYyySxT1LnplqNjiF1ogehQ+rgxlg3gTW9ax2lsqX/R//ULQIDBnXkt/IRmypl7Yh2gkwBlvCKg2hicM21d4J9qeE5RR/PALfV/ehP3WlAzS8vx3VAbC27KVSf6XovxRm9Cz8nstr/F7LYOkPTx2MW6l8FwNMO+G40zz3OFGsjieDvmYY4K7Be6iusyrfbPUzx4gHsKH6QGlMmSr6T8WbW6qQM2ORYvynUubshWQd8spNKFWLwgo008Lt7nMfTtpkRzMOMReBKsTLRWtoeIJeQnbZDiLtDXur56ZxNbHDHLSJA9SZ8uGMWFgrbQ0HUc6Dg+p2hptWCgj4TGwu9Qzg9sTJfdK7vadADvuquGq13VL//bNmnAPEDLTwV2dQyIl/KU4lEID6IWQICYjwEKZJAsmrp8BozIQAwfQDI0Kcnu3xbniZsnin3VxbJKmuhDbPxHSzqhmP6JojIlaiTM2eWYWUSYv6Su+if5l//XPLegu0cj45AFTA83Op0tnu7zqFK0tp63Fpv8Mf3olJbcA+1zEvzwWbEd87//a7R3ezyPnEo3rZr Upmvc+lg alycxfSpPIPmuqKWDtylNXLk7JmRCnzTFbIE5428xCoPpO1tl6uvHwDlbUrf1XEX5lNJ1iC6fTo++DDa3jE9Xxz2564MQ+ic0hQsOpv6//lpk7QJ+yU0kk1c2eXGhEkC35tqVOllSI6pw1+sHvwCwQ6eCyw03KYZpGKVrYm3fcpPCSJOvZjo/+NcWf4GDMqaIs4J8y2opcIVTp2Cr3Pi4biReP2Ev0S4U50EIRN1HXVUmOwqEBjinamSts3YaKroRiSTS X-Bogosity: Ham, tests=bogofilter, spamicity=0.000016, 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, Jan 13, 2025 at 8:52=E2=80=AFAM Johannes Weiner wrote: > > On Sat, Jan 11, 2025 at 09:15:04AM +0000, Chen Ridong wrote: > > @@ -5706,6 +5706,44 @@ static void lru_gen_shrink_node(struct pglist_da= ta *pgdat, struct scan_control * > > > > #endif /* CONFIG_LRU_GEN */ > > > > +/** > > + * find_folios_written_back - Find and move the written back folios to= a new list. > > + * @list: filios list > > + * @clean: the written back folios list > > + * @lruvec: the lruvec > > + * @type: LRU_GEN_ANON/LRU_GEN_FILE, only for multi-gen LRU > > + * @skip_retry: whether skip retry. > > + */ > > +static inline void find_folios_written_back(struct list_head *list, > > + struct list_head *clean, struct lruvec *lruvec, int type,= bool skip_retry) > > +{ > > + struct folio *folio; > > + struct folio *next; > > + > > + list_for_each_entry_safe_reverse(folio, next, list, lru) { > > +#ifdef CONFIG_LRU_GEN > > + DEFINE_MIN_SEQ(lruvec); > > +#endif > > + if (!folio_evictable(folio)) { > > + list_del(&folio->lru); > > + folio_putback_lru(folio); > > + continue; > > + } > > + > > + /* retry folios that may have missed folio_rotate_reclaim= able() */ > > + if (!skip_retry && !folio_test_active(folio) && !folio_ma= pped(folio) && > > + !folio_test_dirty(folio) && !folio_test_writeback(fol= io)) { > > + list_move(&folio->lru, clean); > > + continue; > > + } > > +#ifdef CONFIG_LRU_GEN > > + /* don't add rejected folios to the oldest generation */ > > + if (lru_gen_enabled() && lru_gen_folio_seq(lruvec, folio,= false) =3D=3D min_seq[type]) > > + set_mask_bits(&folio->flags, LRU_REFS_FLAGS, BIT(= PG_active)); > > +#endif > > + } > > Can't this solved much more easily by acting on the flag in the > generic LRU add/putback path? Instead of walking the list again. > > Especially with Kirill's "[PATCH 0/8] mm: Remove PG_reclaim" that > removes the PG_readahead ambiguity. I don't follow -- my understanding is that with Kirill's series, there is no need to do anything for the generic path. (I'll remove the retry in MGLRU which Kirill left behind.) This approach actually came up during the discussions while I was looking at the problem. My concern back then was that shifting the work from the reclaim path to the writeback path can reduce the overall writeback throughput. IIRC, there were regressions with how I implemented it. Let me try finding my notes and see if those regressions still exist with Jen and Kirill's implementation.