From: Hongfu Li <hongfu.li@linux.dev>
To: willy@infradead.org
Cc: akpm@linux-foundation.org, david@kernel.org, hongfu.li@linux.dev,
liam@infradead.org, lihongfu@kylinos.cn,
linux-kernel@vger.kernel.org, linux-mm@kvack.org, ljs@kernel.org,
mhocko@suse.com, rppt@kernel.org, surenb@google.com,
vbabka@kernel.org
Subject: Re: [PATCH] mm/memory: use folio lock/ref helpers in do_swap_page
Date: Wed, 22 Jul 2026 15:46:25 +0800 [thread overview]
Message-ID: <20260722074625.33547-1-hongfu.li@linux.dev> (raw)
In-Reply-To: <amAcAVdFT4O59Svw@casper.infradead.org>
> > From: Hongfu Li <lihongfu@kylinos.cn>
> >
> > Replace page-level lock/ref operations with their folio equivalents
> > in the device_private migration path of do_swap_page().
>
> When I do folio conversions, I like to mention the actual advantage
> of the patch. Here, I'd say something like ...
>
> mm: Use a folio in the softleaf_is_device_private path
>
> Use the folio APIs, replacing four calls to compound_head() with one.
Many thanks for your patient guidance.
I will update the commit message per your suggestion for v2.
> > Introduce a local fault_folio to hold page_folio(vmf->page) to avoid
> > repeated page_folio() invocations.
> >
> > Signed-off-by: Hongfu Li <lihongfu@kylinos.cn>
> > ---
> > mm/memory.c | 11 +++++++----
> > 1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/mm/memory.c b/mm/memory.c
> > index d5e87624f692..bd27372a1052 100644
> > --- a/mm/memory.c
> > +++ b/mm/memory.c
> > @@ -4852,6 +4852,8 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)
> > vmf->page = softleaf_to_page(entry);
> > ret = remove_device_exclusive_entry(vmf);
> > } else if (softleaf_is_device_private(entry)) {
> > + struct folio *fault_folio;
>
> You can just use the existing 'folio' variable.
>
> Although this function is far too long (400 lines! 14 function-scope
> variables!) so I don't blame you for not noticing that. Pulling a
> do_non_swap_page() out of it might be a kindness.
Thanks, will drop the local fault_folio and reuse the existing folio
variable. This change will be included in v2.
Agreed that we can split out helpers from do_swap_page, and I will add
a new patch for this refactoring in v2.
> > if (vmf->flags & FAULT_FLAG_VMA_LOCK) {
> > /*
> > * migrate_to_ram is not yet ready to operate
> > @@ -4863,6 +4865,7 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)
> > }
> >
> > vmf->page = softleaf_to_page(entry);
> > + fault_folio = page_folio(vmf->page);
> > vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
> > vmf->address, &vmf->ptl);
> > if (unlikely(!vmf->pte ||
> > @@ -4874,15 +4877,15 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)
> > * Get a page reference while we know the page can't be
> > * freed.
>
> You should also replace 'page' with 'folio' here. Pages don't have
> refcounts, folios do.
Right, I'll update the comment to "folio" to match. Will include in v2.
Best regards,
Hongfu
prev parent reply other threads:[~2026-07-22 7:46 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-21 1:33 [PATCH] mm/memory: use folio lock/ref helpers in do_swap_page Hongfu Li
2026-07-21 10:21 ` David Hildenbrand (Arm)
2026-07-22 1:02 ` Andrew Morton
2026-07-22 6:23 ` Hongfu Li
2026-07-22 1:25 ` Matthew Wilcox
2026-07-22 7:46 ` Hongfu Li [this message]
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=20260722074625.33547-1-hongfu.li@linux.dev \
--to=hongfu.li@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=liam@infradead.org \
--cc=lihongfu@kylinos.cn \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=rppt@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
--cc=willy@infradead.org \
/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.