From: Lance Yang <lance.yang@linux.dev>
To: Vernon Yang <vernon2gm@gmail.com>
Cc: lorenzo.stoakes@oracle.com, ziy@nvidia.com,
akpm@linux-foundation.org, dev.jain@arm.com, baohua@kernel.org,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Vernon Yang <yanglincheng@kylinos.cn>,
david@kernel.org
Subject: Re: [PATCH mm-new v4 4/6] mm: add folio_is_lazyfree helper
Date: Sun, 11 Jan 2026 21:41:59 +0800 [thread overview]
Message-ID: <78a2ab5b-5ece-4d82-a229-594fb8672108@linux.dev> (raw)
In-Reply-To: <20260111121909.8410-5-yanglincheng@kylinos.cn>
On 2026/1/11 20:19, Vernon Yang wrote:
> Add folio_is_lazyfree() function to identify lazy-free folios to improve
> code readability.
>
> Signed-off-by: Vernon Yang <yanglincheng@kylinos.cn>
> ---
> include/linux/mm_inline.h | 5 +++++
> mm/rmap.c | 2 +-
> mm/vmscan.c | 5 ++---
> 3 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h
> index fa2d6ba811b5..65a4ae52d915 100644
> --- a/include/linux/mm_inline.h
> +++ b/include/linux/mm_inline.h
> @@ -35,6 +35,11 @@ static inline int page_is_file_lru(struct page *page)
> return folio_is_file_lru(page_folio(page));
> }
>
> +static inline int folio_is_lazyfree(const struct folio *folio)
> +{
It's 2026, could we use bool instead of int?
Yeah, I see folio_is_file_lru() uses int but that's legacy ...
> + return folio_test_anon(folio) && !folio_test_swapbacked(folio);
> +}
> +
> static __always_inline void __update_lru_size(struct lruvec *lruvec,
> enum lru_list lru, enum zone_type zid,
> long nr_pages)
> diff --git a/mm/rmap.c b/mm/rmap.c
> index 336b27e00238..fd335b171ea7 100644
> --- a/mm/rmap.c
> +++ b/mm/rmap.c
> @@ -2042,7 +2042,7 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma,
> }
>
> if (!pvmw.pte) {
> - if (folio_test_anon(folio) && !folio_test_swapbacked(folio)) {
> + if (folio_is_lazyfree(folio)) {
> if (unmap_huge_pmd_locked(vma, pvmw.address, pvmw.pmd, folio))
> goto walk_done;
> /*
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 81828fa625ed..ad3516ff1381 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -964,8 +964,7 @@ static void folio_check_dirty_writeback(struct folio *folio,
> * They could be mistakenly treated as file lru. So further anon
> * test is needed.
> */
> - if (!folio_is_file_lru(folio) ||
> - (folio_test_anon(folio) && !folio_test_swapbacked(folio))) {
> + if (!folio_is_file_lru(folio) || folio_is_lazyfree(folio)) {
> *dirty = false;
> *writeback = false;
> return;
> @@ -1506,7 +1505,7 @@ static unsigned int shrink_folio_list(struct list_head *folio_list,
> }
> }
>
> - if (folio_test_anon(folio) && !folio_test_swapbacked(folio)) {
> + if (folio_is_lazyfree(folio)) {
> /* follow __remove_mapping for reference */
> if (!folio_ref_freeze(folio, 1))
> goto keep_locked;
Otherwise, LGTM.
Reviewed-by: Lance Yang <lance.yang@linux.dev>
next prev parent reply other threads:[~2026-01-11 13:42 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-11 12:19 [PATCH mm-new v4 0/6] Improve khugepaged scan logic Vernon Yang
2026-01-11 12:19 ` [PATCH mm-new v4 1/6] mm: khugepaged: add trace_mm_khugepaged_scan event Vernon Yang
2026-01-11 13:49 ` Lance Yang
2026-01-12 11:09 ` Vernon Yang
2026-01-11 12:19 ` [PATCH mm-new v4 2/6] mm: khugepaged: refine scan progress number Vernon Yang
2026-01-14 11:23 ` David Hildenbrand (Red Hat)
2026-01-14 11:28 ` David Hildenbrand (Red Hat)
2026-01-14 11:38 ` David Hildenbrand (Red Hat)
2026-01-17 4:18 ` Vernon Yang
2026-01-17 12:15 ` Vernon Yang
2026-01-11 12:19 ` [PATCH mm-new v4 3/6] mm: khugepaged: just skip when the memory has been collapsed Vernon Yang
2026-01-14 11:40 ` David Hildenbrand (Red Hat)
2026-01-11 12:19 ` [PATCH mm-new v4 4/6] mm: add folio_is_lazyfree helper Vernon Yang
2026-01-11 13:41 ` Lance Yang [this message]
2026-01-12 11:11 ` Vernon Yang
2026-01-14 11:45 ` David Hildenbrand (Red Hat)
2026-01-14 11:52 ` Lance Yang
2026-01-17 4:22 ` Vernon Yang
2026-01-11 12:19 ` [PATCH mm-new v4 5/6] mm: khugepaged: skip lazy-free folios at scanning Vernon Yang
2026-01-14 11:50 ` David Hildenbrand (Red Hat)
2026-01-14 12:44 ` Lance Yang
2026-01-17 4:27 ` Vernon Yang
2026-01-11 12:19 ` [PATCH mm-new v4 6/6] mm: khugepaged: set to next mm direct when mm has MMF_DISABLE_THP_COMPLETELY Vernon Yang
2026-01-11 13:44 ` Lance Yang
2026-01-14 11:52 ` David Hildenbrand (Red Hat)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=78a2ab5b-5ece-4d82-a229-594fb8672108@linux.dev \
--to=lance.yang@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=vernon2gm@gmail.com \
--cc=yanglincheng@kylinos.cn \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.