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 A6E0EC02183 for ; Fri, 17 Jan 2025 16:08:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1EF4B6B0082; Fri, 17 Jan 2025 11:08:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 178926B0085; Fri, 17 Jan 2025 11:08:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F34326B0088; Fri, 17 Jan 2025 11:08:12 -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 D3D3C6B0082 for ; Fri, 17 Jan 2025 11:08:12 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 47549B0507 for ; Fri, 17 Jan 2025 16:08:12 +0000 (UTC) X-FDA: 83017425624.15.394290E Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by imf04.hostedemail.com (Postfix) with ESMTP id 2586940015 for ; Fri, 17 Jan 2025 16:08:10 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=H7ehbjSz; spf=pass (imf04.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.172 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737130090; 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=TzFOrc8++e6jSAehyUUi+5x6xOOD+5GZ3W8iI61RM0g=; b=40FICQuw8JbbXILADGLg1tXwyRe8Gmx3vY7+OWWmLd7F857TVHtGy29sx4coqBt5pJQp/+ YUxD+EGsfQs86kTjJl5jfDVjKSJtBF7GCQRVtITWN+cxev1PUB6SqyCcXAKMsKmJa2MUC6 PhQoSVTtbCgzk6TXIXPi+VKE+Zrrx68= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=H7ehbjSz; spf=pass (imf04.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.172 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737130090; a=rsa-sha256; cv=none; b=Cft+Z39vwtF74bsEx2xX0pJSvhSoziqK81dYRy1f7gtlgBn/+Y7b+GAJDIbvqWJtQMu6yy hL2JJLxhU/Z6nNQ69uQu3Y7+Yhkqrxgid1poCsiu4lTq0xABwZ14RbhUi6YkKD4stdCi5u zMAnEsoMjkhLpH8iavNzOFnVbXOjT0I= Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-46c8474d8daso18705241cf.3 for ; Fri, 17 Jan 2025 08:08:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1737130089; x=1737734889; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=TzFOrc8++e6jSAehyUUi+5x6xOOD+5GZ3W8iI61RM0g=; b=H7ehbjSzF+RKIE8Ijmnp+DWx85AQxVEMeb5HMHncg7R+8Q5Z2WPC8clzpEJnaaaeJ1 xae5QYkkIH9iMeO1qU9rZOarBMNoT7v7uOA3LA9ou8Mnr8caiIezt0//wDrt02njHv1x IqWGPy/3676uJLIc2huR30lgB5alZT4kWTcYWk8VWpg8OVOG8lCtMUJB/TESmfl2W+Fq 1yhMAyUPStA5oZ9sbDBYGQrxvGO+z2I+daOtExdj+YU1fiu5SAZtoGv4/pDfFDq4+ySG z5PdugU6z0yhSh8ZNu4kDlO3hSURM4aaBKzN/VhBAuKlSheqqj3+YriH6mIjad/SXq0Q FgMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737130089; x=1737734889; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TzFOrc8++e6jSAehyUUi+5x6xOOD+5GZ3W8iI61RM0g=; b=X+3l0cSoZUSlmCIWxQJYBoKpM3EdCSq5DUy7W1GJC5jdmNX1RY8OdcAU9qmFYTYgGt od6zJbQXo/TTISF0RHmRVSU54oULfjsheXEpLzGYmCDLAT9VUQyoM0W6FIn398ZVLDLa ZFUtb56EeV4mVML7fQ+y1BFnq1pLUWisq6ZI/fNUl7p7HtKEenlouHRKQ/G8rjhBAHc6 MtpZRsTBcmKFF0AVG0BQ1NuUHVkqraFpSM/2WXy2FHHnbFTgCVQTkhr74GUH2NF1d0KL CuD9eQJ+51L35P7AgmR9GkVE6Ipii4AnOY68WDnmWYpMcL+cmUN66Sdk/L3gGcxo1s+A VjYQ== X-Forwarded-Encrypted: i=1; AJvYcCWhLBb5hQvp/X6HBMW2mwZCZGeLX3h1asQbgjLD+EmTldD8WmrdUe9uBYgfP5dpPTfVNz7JkDucLg==@kvack.org X-Gm-Message-State: AOJu0YxQ6YNNNj9HiX006myGTTswo/IESlcoWg9UuLIAmUX6j4brjs3b 2YpnXocvGKDQup/rhE/3oBI6TYPpp+EGljdg6NDRNFRdKFgjLThzGY7z3Gd5zpM= X-Gm-Gg: ASbGncspSnktJCDa5F3QYQjLoEnsrBeO8iuLo3szfJqDzLG6hpWZX4RgpuN33bJDQlo w/xpa9gKEdUg0TTfEyo9DRpyk1jgTECsHkJnOCFVp1rICjYZheSrFbm5glQ6bCREFfXCT78nDg1 eTo4EC0G32kYlEW047Ey9O0Qigeciyten8Pmrx9KV2Y2MKOkkfg24MTbycfQpsXxzQF7T2TKuJm dwpYjRqCU69bdXY1tDzl9IHGk1HoENOY8t2bl2S/TTBPg1prYbEwgg= X-Google-Smtp-Source: AGHT+IEGIi75WP09z3DZQhSalvgpRut37RczhbXGlZumzaEaxztGR2/rD+O5503nc38ZHAvdHhPosg== X-Received: by 2002:a05:622a:413:b0:467:43c1:f0ea with SMTP id d75a77b69052e-46e12a3fa11mr59761241cf.16.1737130089149; Fri, 17 Jan 2025 08:08:09 -0800 (PST) Received: from localhost ([2603:7000:c01:2716:f0c4:bf28:3737:7c34]) by smtp.gmail.com with UTF8SMTPSA id d75a77b69052e-46e1030da0bsm12473631cf.34.2025.01.17.08.08.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jan 2025 08:08:07 -0800 (PST) Date: Fri, 17 Jan 2025 11:08:04 -0500 From: Johannes Weiner To: Yu Zhao Cc: "Kirill A . Shutemov" , 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 Subject: Re: [PATCH v7 mm-unstable] mm: vmscan: retry folios written back while isolated for traditional LRU Message-ID: <20250117160804.GA182896@cmpxchg.org> References: <20250111091504.1363075-1-chenridong@huaweicloud.com> <20250113155206.GB829144@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Queue-Id: 2586940015 X-Stat-Signature: wiqmyo8x97mxyjygcufzhpmb3oa4qcmk X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1737130090-884724 X-HE-Meta: U2FsdGVkX1+sxFz+FbXkaEGcOoOVByadfTJxFmclSh3oKrRp2WzjddLuMXVkH46Cst0aN0ZghWl0cPy+Dydyq8+XAetAJj6XBRMA+eACBpXin7YIg6pIHkvQx4RVCDP9FPl8WoATM5ycMrJSkm0rSeRrimd/1Fplv3B2jjq4RZyabr/x/Ldzja+wPVAn9H7QrK9wv02WVkPE1D8ACTN+ugrmwy7HZWCzvOBnbpWyGbXs57Jp25YpJLKoRSRYxHWYnEn33PNh7I0fXYoSkYDl8IeIYmytJfqck4kauDc3FxzAJBaSj/S5R+IDvKpcgUlrcjcf+b8sG0gnSCz7frQD4z4wf6j+l3A+Po24AmUFWsmoyQnWhMbDftqL8RRu/1jA1PeRDnCvICZ0vD7gde0AG0/26YiDKuVEiCv8ybkJm1qiAhK4SJl+CQv1B2oJI1HVS+FA6zJZDpSuTSF1PO41nQFBT20RE4Tr/fKvcfFq0i6G8+cob0DB0ZydNyzeHnL2FVzUXhuqDhZPKYM870OSvwu7w1cjS5usC9b7xHDhjocLOJasykeKRCL6VYuKofj6Y0ZbFNgqe/+XQb35Xw6DRYpK7o5drUrm79MdWXvW5pMZ6vfM3phatybuYJRpyU0Ne6lAhDxovvTaXvXpxm5mw2pvkNepuJS426AZISPjJl/k/FdeRBN8WiWDQTixkqQNHWA/8XHsVmC5DgeYaG6kxJGomr38m/gIiM2Q6YxseX7LTOIeaCPekvuOGkCeLsOFbbf1QdNvw/R0NacqcrMp4UR785zXbdVp03e20BOYWj7aIVcdwZGyidgLPFtonGHYfPkXI5OqHC0TfQ8ksRRUPbMeTroR7EWbzIVRh4B17MHH97mmNsrSxImZ0r3vTWo7WgF/ReTDMU5+rY9o1ZFobw7ULh8nCtAPUYOW9tdPL/IAQsJaAHVI7ZvgITSAMFwHuI7eYcmGDbTQ1ZVOULV DqdtfilG rpF3T8+OgwarwvmEJ/O6dbgToDHpZRV21+/XIN3/cnkjTPdzAF2tQhGjOVBN8+eDPIwOgwU/hr/e9DIiguKaWFWCQ/wH139QIfJKAuNKrmbdChyDkXJTjMnpjDLsrSeIc2jrh5KDrKk230jEJuYiZiMXlCDFXOLSRGF/yFMkLpqNqzZ9t8U5Gkgxp5To78zhl1lt/+kbUNSUeGgkB+gROcFypdnhDN0atsRugKn5I0vrAlqmPiKh9FUZ7Ap1XHuUoyf0RXjsOCQybDa+QoLTrY56nedZsK6EXJbXor1og/Mpl6et/jk+I8UzFN9SERoglgnn1kEF6FKsPBJly2LcMUnQB8oYqjKovt4lkRXideSXuXuA+CbDkqlQiBiLSm7Ns3S2E2Ru7A+Dgt6SPI9F4yezcNxhjJNosV50RoJYVKIHB6YyvYSqR4iSoj+S+YiSC9LYEPspLtv/eKxfvs6DRx1E2OjgyGRp++jPdJRely9W5yyRgHjNt/swT4IKoinVL/7hA 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 Tue, Jan 14, 2025 at 08:59:04PM -0700, Yu Zhao wrote: > On Mon, Jan 13, 2025 at 8:52 AM 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_data *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_reclaimable() */ > > > + if (!skip_retry && !folio_test_active(folio) && !folio_mapped(folio) && > > > + !folio_test_dirty(folio) && !folio_test_writeback(folio)) { > > > + 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) == 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.) Dropbehind trylocks the folio, so there is still a chance of misses when the IO submission is from reclaim (which also relocks the folio after IO submission). Granted, that race window is much smaller compared to the window between rotation and batched LRU putback. Probably best to retest on top of all the pending patches.