From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: Hongfu Li <hongfu.li@linux.dev>
Cc: akpm@linux-foundation.org, david@kernel.org, liam@infradead.org,
vbabka@kernel.org, rppt@kernel.org, surenb@google.com,
mhocko@suse.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, Hongfu Li <lihongfu@kylinos.cn>
Subject: Re: [PATCH v2 1/2] mm: Use a folio in the softleaf_is_device_private path
Date: Mon, 27 Jul 2026 17:29:32 +0100 [thread overview]
Message-ID: <amdkR-gX_ABcKyCQ@lucifer> (raw)
In-Reply-To: <20260723030752.16979-2-hongfu.li@linux.dev>
On Thu, Jul 23, 2026 at 11:07:51AM +0800, Hongfu Li wrote:
> From: Hongfu Li <lihongfu@kylinos.cn>
>
> Use the folio APIs in the device_private migration path of do_swap_page(),
> replacing four calls to compound_head() with one.
>
> Signed-off-by: Hongfu Li <lihongfu@kylinos.cn>
> Acked-by: David Hildenbrand (Arm) <david@kernel.org>
With changes below applied LGTM, so:
Reviewed-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
> ---
> mm/memory.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/mm/memory.c b/mm/memory.c
> index d5e87624f692..ae521baa8c84 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -4871,18 +4871,19 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)
> goto unlock;
>
Up here we have:
vmf->page = softleaf_to_page(entry);
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
vmf->address, &vmf->ptl);
if (unlikely(!vmf->pte ||
!pte_same(ptep_get(vmf->pte),
vmf->orig_pte)))
Since we're canonicalising to folio why not actually set folio using
softleaf_to_folio()?
So
+ folio = softleaf_to_folio(entry);
- vmf->page = softleaf_to_page(entry);
+ vmf->page = &folio->page;
This would also make more sense in your 2/2. But more on that in a sec.
> /*
> - * Get a page reference while we know the page can't be
> + * Get a folio reference while we know the folio can't be
NIT: be -> next line for 80 chars.
> * freed.
> */
> - if (trylock_page(vmf->page)) {
> + folio = page_folio(vmf->page);
> + if (folio_trylock(folio)) {
> struct dev_pagemap *pgmap;
>
> - get_page(vmf->page);
> + folio_get(folio);
> pte_unmap_unlock(vmf->pte, vmf->ptl);
> pgmap = page_pgmap(vmf->page);
> ret = pgmap->ops->migrate_to_ram(vmf);
> - unlock_page(vmf->page);
> - put_page(vmf->page);
> + folio_unlock(folio);
> + folio_put(folio);
> } else {
> pte_unmap(vmf->pte);
> softleaf_entry_wait_on_locked(entry, vmf->ptl);
> --
> 2.54.0
>
Thanks, Lorenzo
next prev parent reply other threads:[~2026-07-27 16:29 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-23 3:07 [PATCH v2 0/2] mm: folio conversion and refactoring in do_swap_page() Hongfu Li
2026-07-23 3:07 ` [PATCH v2 1/2] mm: Use a folio in the softleaf_is_device_private path Hongfu Li
2026-07-27 16:29 ` Lorenzo Stoakes (ARM) [this message]
2026-07-31 9:40 ` Hongfu Li
2026-07-31 13:06 ` Lorenzo Stoakes (ARM)
2026-07-23 3:07 ` [PATCH v2 2/2] mm: Extract non-swap page handling to do_non_swap_page() Hongfu Li
2026-07-24 19:33 ` David Hildenbrand (Arm)
2026-07-27 12:10 ` Hongfu Li
2026-07-27 12:16 ` David Hildenbrand (Arm)
2026-07-27 13:58 ` Lorenzo Stoakes (ARM)
2026-07-28 3:21 ` Hongfu Li
2026-07-28 3:13 ` Christoph Hellwig
2026-07-27 16:30 ` Lorenzo Stoakes (ARM)
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=amdkR-gX_ABcKyCQ@lucifer \
--to=ljs@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=hongfu.li@linux.dev \
--cc=liam@infradead.org \
--cc=lihongfu@kylinos.cn \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=rppt@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.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.