linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
To: Wei Yang <richard.weiyang@gmail.com>,
	akpm@linux-foundation.org, lorenzo.stoakes@oracle.com,
	ziy@nvidia.com, baolin.wang@linux.alibaba.com,
	Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com,
	dev.jain@arm.com, baohua@kernel.org, lance.yang@linux.dev
Cc: linux-mm@kvack.org
Subject: Re: [PATCH] mm/huge_memory: use end_folio to terminate anonymous folio remapping
Date: Thu, 27 Nov 2025 08:22:26 +0100	[thread overview]
Message-ID: <2fffc8d4-6cb9-45bc-99bb-b87f580aec42@kernel.org> (raw)
In-Reply-To: <20251127022436.20734-1-richard.weiyang@gmail.com>

On 11/27/25 03:24, Wei Yang wrote:
> After splitting a large folio, it is necessary to remap the resulting
> anonymous folios.
> 
> The current implementation determines the end of the remapping process
> by counting the number of pages that have been processed.
> 
> Since the final folio in the sequence, end_folio, is already known and
> tracked, this commit refactors the remapping loop to leverage end_folio
> as the termination marker.
> 
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> Cc: Zi Yan <ziy@nvidia.com>
> ---
>   mm/huge_memory.c | 14 ++++----------
>   1 file changed, 4 insertions(+), 10 deletions(-)
> 
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index 553bfa961fce..afc7b2f91e99 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -3414,20 +3414,14 @@ 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_page(struct folio *folio, struct folio *end_folio, int flags)
>   {
> -	int i = 0;
> -
>   	/* If unmap_folio() uses try_to_migrate() on file, remove this check */
>   	if (!folio_test_anon(folio))
>   		return;
> -	for (;;) {
> +	do {
>   		remove_migration_ptes(folio, folio, RMP_LOCKED | flags);
> -		i += folio_nr_pages(folio);
> -		if (i >= nr)
> -			break;
> -		folio = folio_next(folio);
> -	}
> +	} while ((folio = folio_next(folio)) != end_folio);

Rather ugly.

Nothing lost by just keeping "folio = folio_next(folio);" in the loop 
and focusing on what your patch documents.

But as Lorenzo said, the time for such cleanups is after most of the 
current stuff was merged in the upcoming merge window.

-- 
Cheers

David


  parent reply	other threads:[~2025-11-27  7:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-27  2:24 Wei Yang
2025-11-27  6:30 ` Lorenzo Stoakes
2025-11-27  7:22 ` David Hildenbrand (Red Hat) [this message]
2025-11-27  8:54   ` Wei Yang

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=2fffc8d4-6cb9-45bc-99bb-b87f580aec42@kernel.org \
    --to=david@kernel.org \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=dev.jain@arm.com \
    --cc=lance.yang@linux.dev \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=npache@redhat.com \
    --cc=richard.weiyang@gmail.com \
    --cc=ryan.roberts@arm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox