From: Yeoreum Yun <yeoreum.yun@arm.com>
To: kasong@tencent.com
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
David Hildenbrand <david@kernel.org>,
Lorenzo Stoakes <ljs@kernel.org>, Zi Yan <ziy@nvidia.com>,
Baolin Wang <baolin.wang@linux.alibaba.com>,
"Liam R. Howlett" <liam@infradead.org>,
Nico Pache <nico.pache@linux.dev>,
Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
Lance Yang <lance.yang@linux.dev>,
Usama Arif <usama.arif@linux.dev>,
Vlastimil Babka <vbabka@kernel.org>,
Mike Rapoport <rppt@kernel.org>,
Suren Baghdasaryan <surenb@google.com>,
Michal Hocko <mhocko@suse.com>, Chris Li <chrisl@kernel.org>,
Kemeng Shi <shikemeng@huaweicloud.com>,
Nhat Pham <nphamcs@gmail.com>, Baoquan He <baoquan.he@linux.dev>,
Barry Song <baohua@kernel.org>,
Youngjun Park <youngjun.park@lge.com>,
Yeoreum Yun <yeoreum.yun@arm.com>,
"Kiryl Shutsemau (Meta)" <kas@kernel.org>,
Shivam Kalra <shivamkalra98@zohomail.in>,
Kairui Song <ryncsn@gmail.com>
Subject: Re: [PATCH v5 09/17] mm/huge_memory: rename remap_page() to remap_anon_folio()
Date: Mon, 14 Sep 2026 18:28:15 +0100 [thread overview]
Message-ID: <aqgur6-4y2tpEGh6@e129823.arm.com> (raw)
In-Reply-To: <20260915-swap-thp-cleanup-v5-9-39878b37dfb0@tencent.com>
LGTM.
Reviewed-by: Yeoreum Yun <yeoreum.yun@arm.com>
> From: Kairui Song <kasong@tencent.com>
>
> remap_page() now only has one caller, __folio_freeze_split_anon(),
> and is only ever called for anon folios: unmap_folio() currently
> leaves file folios unmapped after the split, so they need no
> remapping.
>
> Rename it to remap_anon_folio() to make that explicit, and add a
> VM_WARN_ON_FOLIO() documenting it.
>
> Reviewed-by: Zi Yan <ziy@nvidia.com>
> Reviewed-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
> Signed-off-by: Kairui Song <kasong@tencent.com>
> ---
> mm/huge_memory.c | 17 ++++++++++++-----
> 1 file changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index 1749905ade6a..77bf68c9b9af 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -3552,7 +3552,7 @@ static void unmap_folio(struct folio *folio)
> /*
> * Anon pages need migration entries to preserve them, but file
> * pages can simply be left unmapped, then faulted back on demand.
> - * If that is ever changed (perhaps for mlock), update remap_page().
> + * If that is ever changed (perhaps for mlock), update remap_anon_folio().
> */
> if (folio_test_anon(folio))
> try_to_migrate(folio, ttu_flags);
> @@ -3637,10 +3637,17 @@ bool unmap_huge_pmd_locked(struct vm_area_struct *vma, unsigned long addr,
> return __discard_anon_folio_pmd_locked(vma, addr, pmdp, folio);
> }
>
> -static void remap_page(struct folio *folio, unsigned long nr, int flags)
> +static void remap_anon_folio(struct folio *folio, unsigned long nr, int flags)
> {
> int i = 0;
>
> + /*
> + * unmap_folio() installs migration entries only for anon folios,
> + * so currently only anon folios need to be remapped. File folios
> + * stay unmapped after the split and are faulted back on demand.
> + */
> + VM_WARN_ON_FOLIO(!folio_test_anon(folio), folio);
> +
> for (;;) {
> remove_migration_ptes(folio, folio, TTU_RMAP_LOCKED | flags);
> i += folio_nr_pages(folio);
> @@ -3724,7 +3731,7 @@ static void __split_folio_to_order(struct folio *folio, int old_order,
> *
> * Note that for mapped sub-pages of an anonymous THP,
> * PG_anon_exclusive has been cleared in unmap_folio() and is stored in
> - * the migration entry instead from where remap_page() will restore it.
> + * the migration entry instead from where remap_anon_folio() will restore it.
> * We can still have PG_anon_exclusive set on effectively unmapped and
> * unreferenced sub-pages of an anonymous THP: we can simply drop
> * PG_anon_exclusive (-> PG_mappedtodisk) for these here.
> @@ -4084,7 +4091,7 @@ static int __folio_freeze_split_anon(struct folio *folio,
> if (need_remap) {
> if (!ret && !folio_is_device_private(folio))
> ttu_flags = TTU_USE_SHARED_ZEROPAGE;
> - remap_page(folio, 1 << old_order, ttu_flags);
> + remap_anon_folio(folio, 1 << old_order, ttu_flags);
> }
>
> return ret;
> @@ -4206,7 +4213,7 @@ static int __folio_freeze_split_file(struct folio *folio,
> fail:
> /*
> * If we want to use try_to_migrate() on file in unmap_folio,
> - * remember to add remap_page() and adapt it.
> + * remember to add remap_anon_folio() and adapt it.
> */
> xas_unlock_irq(xas);
> if (nr_shmem_dropped)
>
> --
> 2.55.0
>
>
--
Sincerely,
Yeoreum Yun
next prev parent reply other threads:[~2026-09-14 17:28 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-14 17:14 [PATCH v5 00/17] mm/huge_memory: clean up and decouple the anon and file split helpers Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 01/17] mm/swap: fix off-by-one in swap cache replace sanity check Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 02/17] mm/huge_memory: fix rejection of swap cache folios with a mapping Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 03/17] mm/huge_memory: invert folio_ref_freeze() check to reduce indentation Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 04/17] mm/huge_memory: split the routine for splitting anon and file folio Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 05/17] mm/huge_memory: rename __split_unmapped_folio() to __split_frozen_folio() Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 06/17] mm/huge_memory: consolidate irq and locking for folio split Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 07/17] mm/huge_memory: move EOF trimming into the file split helper Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 08/17] mm/huge_memory: move unmap and remap into the split helpers Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-18 20:48 ` David Hildenbrand (Arm)
2026-09-14 17:14 ` [PATCH v5 09/17] mm/huge_memory: rename remap_page() to remap_anon_folio() Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:28 ` Yeoreum Yun [this message]
2026-09-18 20:46 ` David Hildenbrand (Arm)
2026-09-23 12:21 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 10/17] mm/huge_memory: move the racy refcount check into unmap_folio() Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:29 ` Yeoreum Yun
2026-09-18 20:53 ` David Hildenbrand (Arm)
2026-09-14 17:14 ` [PATCH v5 11/17] mm/huge_memory: move filemap management into the file split helper Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:30 ` Yeoreum Yun
2026-09-18 20:57 ` David Hildenbrand (Arm)
2026-09-14 17:14 ` [PATCH v5 12/17] mm/huge_memory: move anon_vma handling into the anon " Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:27 ` Yeoreum Yun
2026-09-18 21:02 ` David Hildenbrand (Arm)
2026-09-14 17:14 ` [PATCH v5 13/17] mm/huge_memory: move memcg switch into the file " Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 14/17] mm/huge_memory: drop the unused do_lru argument of " Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-14 17:14 ` [PATCH v5 15/17] mm/huge_memory: clean up after-split folio freeing in __folio_split Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-18 21:03 ` David Hildenbrand (Arm)
2026-09-14 17:14 ` [PATCH v5 16/17] mm/huge_memory: count only swap cache refs in anon folio split Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-18 21:07 ` David Hildenbrand (Arm)
2026-09-14 17:14 ` [PATCH v5 17/17] mm/huge_memory: drop the redundant mapping argument of __split_frozen_folio Kairui Song via B4 Relay
2026-09-14 17:14 ` Kairui Song
2026-09-18 21:04 ` David Hildenbrand (Arm)
2026-09-15 0:45 ` [PATCH v5 00/17] mm/huge_memory: clean up and decouple the anon and file split helpers Andrew Morton
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=aqgur6-4y2tpEGh6@e129823.arm.com \
--to=yeoreum.yun@arm.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=baoquan.he@linux.dev \
--cc=chrisl@kernel.org \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=kas@kernel.org \
--cc=kasong@tencent.com \
--cc=lance.yang@linux.dev \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=nico.pache@linux.dev \
--cc=nphamcs@gmail.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=ryncsn@gmail.com \
--cc=shikemeng@huaweicloud.com \
--cc=shivamkalra98@zohomail.in \
--cc=surenb@google.com \
--cc=usama.arif@linux.dev \
--cc=vbabka@kernel.org \
--cc=youngjun.park@lge.com \
--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.