From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A2063347FD7 for ; Thu, 23 Apr 2026 18:14:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776968076; cv=none; b=C1WQn06safupQuv6gjgwiuz76s6RI/86FsWVWyNf1u7Au8zX8GhRVOOB+kzI9cIrG99CjD8RdZ/Iz1XjWYYGX5F/TzmLmo0J9DeXf1fqHJ6F+As3uegD4AeSG/MXdoRKsJ5Wp5m+7Nn7XS0aFwuRVmzShljbId8d6p6PJKUHjsI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776968076; c=relaxed/simple; bh=4NTue2O4Tc/F1aksa6fvgliGxjaMqkim4YqobgTShHY=; h=Date:To:From:Subject:Message-Id; b=EPQvjfcquKases4veAoHNcgjOsgrBNSEPY0xCmGz7iI+X4yLmzKcRFWE/QCn4ceLk1EMCt8/FLc54k8umsfl60iDUKqQxHTO4eotNV+ysLTBSgVVt8oVLgpZ4Dq7SRYBa5/Md3btQQySNCp5H2NJXedq3KtLYadhMDWpeXMLmcc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b=ZqyR6z5V; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b="ZqyR6z5V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42B67C2BCAF; Thu, 23 Apr 2026 18:14:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1776968076; bh=4NTue2O4Tc/F1aksa6fvgliGxjaMqkim4YqobgTShHY=; h=Date:To:From:Subject:From; b=ZqyR6z5Va/Uuanuvdy74iPbJ83s19kS+6BEp1s2jwxR7yspUGXZVU8i2BsTVz3+yY 7Kl5hSLqY6JiNhI6d5zWGTwjZNhUxuFtlcZ2IH9sIr4NIQNWGfr6WSyul3tgKvv/A1 8S/VrNbp0ZKo9kYhAtKOndAwPxKmXvewSTu7GrpE= Date: Thu, 23 Apr 2026 11:14:35 -0700 To: mm-commits@vger.kernel.org,kasong@tencent.com,akpm@linux-foundation.org From: Andrew Morton Subject: + mm-mglru-remove-redundant-swap-constrained-check-upon-isolation.patch added to mm-new branch Message-Id: <20260423181436.42B67C2BCAF@smtp.kernel.org> Precedence: bulk X-Mailing-List: mm-commits@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: The patch titled Subject: mm/mglru: remove redundant swap constrained check upon isolation has been added to the -mm mm-new branch. Its filename is mm-mglru-remove-redundant-swap-constrained-check-upon-isolation.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-mglru-remove-redundant-swap-constrained-check-upon-isolation.patch This patch will later appear in the mm-new branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Note, mm-new is a provisional staging ground for work-in-progress patches, and acceptance into mm-new is a notification for others take notice and to finish up reviews. Please do not hesitate to respond to review feedback and post updated versions to replace or incrementally fixup patches in mm-new. The mm-new branch of mm.git is not included in linux-next If a few days of testing in mm-new is successful, the patch will me moved into mm.git's mm-unstable branch, which is included in linux-next Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via various branches at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there most days ------------------------------------------------------ From: Kairui Song Subject: mm/mglru: remove redundant swap constrained check upon isolation Date: Fri, 24 Apr 2026 01:43:19 +0800 Remove the swap-constrained early reject check upon isolation. This check is a micro optimization when swap IO is not allowed, so folios are rejected early. But it is redundant and overly broad since shrink_folio_list() already handles all these cases with proper granularity. Notably, this check wrongly rejected lazyfree folios, and it doesn't cover all rejection cases. shrink_folio_list() uses may_enter_fs(), which distinguishes non-SWP_FS_OPS devices from filesystem-backed swap and does all the checks after folio is locked, so flags like swap cache are stable. This check also covers dirty file folios, which are not a problem now since sort_folio() already bumps dirty file folios to the next generation, but causes trouble for unifying dirty folio writeback handling. And there should be no performance impact from removing it. We may have lost a micro optimization, but unblocked lazyfree reclaim for NOIO contexts, which is not a common case in the first place. Link: https://lore.kernel.org/20260424-mglru-reclaim-v6-8-a57622d770c3@tencent.com Signed-off-by: Kairui Song Reviewed-by: Axel Rasmussen Reviewed-by: Baolin Wang Reviewed-by: Chen Ridong Reviewed-by: Barry Song Cc: Chris Li Cc: David Hildenbrand Cc: David Stevens Cc: Johannes Weiner Cc: Kalesh Singh Cc: Leno Hou Cc: Lorenzo Stoakes Cc: Michal Hocko Cc: Qi Zheng Cc: Shakeel Butt Cc: Suren Baghdasaryan Cc: Vernon Yang Cc: Wei Xu Cc: Yafang Cc: Yuanchu Xie Cc: Yu Zhao Signed-off-by: Andrew Morton --- mm/vmscan.c | 6 ------ 1 file changed, 6 deletions(-) --- a/mm/vmscan.c~mm-mglru-remove-redundant-swap-constrained-check-upon-isolation +++ a/mm/vmscan.c @@ -4650,12 +4650,6 @@ static bool isolate_folio(struct lruvec { bool success; - /* swap constrained */ - if (!(sc->gfp_mask & __GFP_IO) && - (folio_test_dirty(folio) || - (folio_test_anon(folio) && !folio_test_swapcache(folio)))) - return false; - /* raced with release_pages() */ if (!folio_try_get(folio)) return false; _ Patches currently in -mm which might be from kasong@tencent.com are mm-mglru-consolidate-common-code-for-retrieving-evictable-size.patch mm-mglru-rename-variables-related-to-aging-and-rotation.patch mm-mglru-relocate-the-lru-scan-batch-limit-to-callers.patch mm-mglru-restructure-the-reclaim-loop.patch mm-mglru-scan-and-count-the-exact-number-of-folios.patch mm-mglru-use-a-smaller-batch-for-reclaim.patch mm-mglru-dont-abort-scan-immediately-right-after-aging.patch mm-mglru-remove-redundant-swap-constrained-check-upon-isolation.patch mm-mglru-use-the-common-routine-for-dirty-writeback-reactivation.patch mm-mglru-simplify-and-improve-dirty-writeback-handling.patch mm-mglru-remove-no-longer-used-reclaim-argument-for-folio-protection.patch mm-vmscan-remove-sc-file_taken.patch mm-vmscan-remove-sc-unqueued_dirty.patch mm-vmscan-unify-writeback-reclaim-statistic-and-throttling.patch