From: "Zi Yan" <ziy@nvidia.com>
To: "Usama Arif" <usama.arif@linux.dev>,
"Andrew Morton" <akpm@linux-foundation.org>, <david@kernel.org>,
<chrisl@kernel.org>, <kasong@tencent.com>, <ljs@kernel.org>,
<linux-mm@kvack.org>
Cc: <ying.huang@linux.alibaba.com>,
"Baoquan He" <baoquan.he@linux.dev>, <willy@infradead.org>,
<youngjun.park@lge.com>, <hannes@cmpxchg.org>, <riel@surriel.com>,
<shakeel.butt@linux.dev>, <alex@ghiti.fr>, <kas@kernel.org>,
<baohua@kernel.org>, <dev.jain@arm.com>,
<baolin.wang@linux.alibaba.com>,
"Nico Pache" <nico.pache@linux.dev>,
"Liam R.Howlett" <liam@infradead.org>, <ryan.roberts@arm.com>,
"Vlastimil Babka" <vbabka@kernel.org>, <lance.yang@linux.dev>,
<linux-kernel@vger.kernel.org>, <nphamcs@gmail.com>,
<shikemeng@huaweicloud.com>, <yosry@kernel.org>,
<qi.zheng@linux.dev>, <luizcap@redhat.com>,
<kernel-team@meta.com>
Subject: Re: [PATCH v8 08/30] mm: recognize PMD swap entries in the softleaf layer
Date: Wed, 07 Oct 2026 22:06:57 -0400 [thread overview]
Message-ID: <DLZ38NR21UU6.QIKBG8SO7189@nvidia.com> (raw)
In-Reply-To: <20261002095503.3585565-9-usama.arif@linux.dev>
On Fri Oct 2, 2026 at 5:52 AM EDT, Usama Arif wrote:
> Reclaim splits a PMD-mapped anonymous THP into PTE-level swap entries
> before unmapping it, so an ordinary swap entry has never had to appear in a
> PMD. Prepare for installing one there instead: the softleaf layer is where
> every consumer decodes non-present PMDs.
>
> Accept swap entries as valid PMD softleaves and add pmd_is_swap_entry().
> A swap entry carries no PFN, so make pmd_softleaf_to_folio() warn and
> return NULL rather than interpret a swap offset as a page frame number.
>
> Unlike migration and device-private entries, a PMD swap entry can also
> carry the swap-exclusive marker, which softleaf_from_pmd() has to strip
> before decoding. Strip all three overlays unconditionally while we are
> here: each clear is a plain bit clear, so testing first only buys a branch.
>
> Signed-off-by: Usama Arif <usama.arif@linux.dev>
> Acked-by: David Hildenbrand (Arm) <david@kernel.org>
> Reviewed-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
> ---
> include/linux/leafops.h | 40 ++++++++++++++++++++++++++++------------
> include/linux/pgtable.h | 17 +++++++++++++++++
> 2 files changed, 45 insertions(+), 12 deletions(-)
>
> diff --git a/include/linux/leafops.h b/include/linux/leafops.h
> index 7c13c58a5e218..ce176c78cefd4 100644
> --- a/include/linux/leafops.h
> +++ b/include/linux/leafops.h
> @@ -98,10 +98,9 @@ static inline softleaf_t softleaf_from_pmd(pmd_t pmd)
> if (pmd_present(pmd) || pmd_none(pmd))
> return softleaf_mk_none();
>
> - if (pmd_swp_soft_dirty(pmd))
> - pmd = pmd_swp_clear_soft_dirty(pmd);
> - if (pmd_swp_uffd(pmd))
> - pmd = pmd_swp_clear_uffd(pmd);
> + pmd = pmd_swp_clear_soft_dirty(pmd);
> + pmd = pmd_swp_clear_uffd(pmd);
> + pmd = pmd_swp_clear_exclusive(pmd);
I notice there is pte_swp_clear_flags() and wonder if we want
pmd_swp_clear_flags() to match it.
> arch_entry = __pmd_to_swp_entry(pmd);
>
> /* Temporary until swp_entry_t eliminated. */
> @@ -634,18 +633,29 @@ static inline bool pmd_is_migration_entry(pmd_t pmd)
> */
> static inline bool softleaf_is_valid_pmd_entry(softleaf_t entry)
> {
> - /* Only device private, migration entries valid for PMD. */
> return softleaf_is_device_private(entry) ||
> - softleaf_is_migration(entry);
> + softleaf_is_migration(entry) ||
> + softleaf_is_swap(entry);
Using softleaf_is_swap() here makes softleaf_is_valid_pmd_entry() return
false positive when pmd swap entry is not possible at the moment. Adding
it only after pmd swap entry is possible can close the gap. But the
whole series should be applied together, so it should be fine.
Otherwise, LGTM.
Reviewed-by: Zi Yan <ziy@nvidia.com>
--
Best Regards,
Yan, Zi
next prev parent reply other threads:[~2026-10-08 2:07 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-02 9:52 [PATCH v8 00/30] mm: PMD-level swap entries for anonymous THPs Usama Arif
2026-10-02 9:52 ` [PATCH v8 01/30] mm: rename pmd_to_softleaf_folio() to pmd_softleaf_to_folio() Usama Arif
2026-10-02 9:52 ` [PATCH v8 02/30] arm64: mm: add PMD swap-exclusive helpers Usama Arif
2026-10-02 9:52 ` [PATCH v8 03/30] loongarch: " Usama Arif
2026-10-02 14:17 ` Huacai Chen
2026-10-02 9:52 ` [PATCH v8 04/30] powerpc: " Usama Arif
2026-10-05 4:55 ` LEROY Christophe
2026-10-02 9:52 ` [PATCH v8 05/30] riscv: " Usama Arif
2026-10-02 9:52 ` [PATCH v8 06/30] s390: " Usama Arif
2026-10-02 9:52 ` [PATCH v8 07/30] x86: " Usama Arif
2026-10-05 20:14 ` Zi Yan
2026-10-02 9:52 ` [PATCH v8 08/30] mm: recognize PMD swap entries in the softleaf layer Usama Arif
2026-10-08 2:06 ` Zi Yan [this message]
2026-10-02 9:52 ` [PATCH v8 09/30] mm/debug_vm_pgtable: test PMD swap-exclusive helpers Usama Arif
2026-10-08 2:09 ` Zi Yan
2026-10-02 9:52 ` [PATCH v8 10/30] mm: make PMD migration-entry splitting explicit Usama Arif
2026-10-08 2:53 ` Zi Yan
2026-10-02 9:52 ` [PATCH v8 11/30] mm: split PMD swap entries into PTE swap entries Usama Arif
2026-10-02 9:52 ` [PATCH v8 12/30] mm/swap: allow duplicating a range of " Usama Arif
2026-10-02 9:52 ` [PATCH v8 13/30] mm: handle PMD swap entries in fork path Usama Arif
2026-10-02 9:52 ` [PATCH v8 14/30] mm: zswap: reject high-order swap cache allocations backed by zswap Usama Arif
2026-10-05 20:18 ` Yosry Ahmed
2026-10-02 9:52 ` [PATCH v8 15/30] mm: swap in PMD swap entries as whole THPs during swapoff Usama Arif
2026-10-02 9:52 ` [PATCH v8 16/30] fs/proc: account PMD swap entries in smaps Usama Arif
2026-10-02 9:52 ` [PATCH v8 17/30] mm: handle soft-dirty and uffd-wp on PMD swap entries Usama Arif
2026-10-02 9:52 ` [PATCH v8 18/30] mm/hmm: fault PMD swap entries on demand Usama Arif
2026-10-02 9:52 ` [PATCH v8 19/30] mm: free PMD swap entries in zap_huge_pmd() Usama Arif
2026-10-02 9:52 ` [PATCH v8 20/30] mm/madvise: free PMD swap entries with MADV_FREE Usama Arif
2026-10-02 9:52 ` [PATCH v8 21/30] mm/madvise: skip PMD swap entries for MADV_COLD and MADV_PAGEOUT Usama Arif
2026-10-02 9:52 ` [PATCH v8 22/30] mm/madvise: keep PMD swap entries whole for MADV_GUARD_INSTALL/REMOVE Usama Arif
2026-10-02 9:52 ` [PATCH v8 23/30] mm/mincore: report PMD swap-cache residency Usama Arif
2026-10-02 9:52 ` [PATCH v8 24/30] mm/khugepaged: treat PMD swap entries as mapped THPs Usama Arif
2026-10-02 9:52 ` [PATCH v8 25/30] mm: handle PMD swap entries in MADV_WILLNEED Usama Arif
2026-10-02 9:52 ` [PATCH v8 26/30] mm: handle PMD swap entries in UFFDIO_MOVE Usama Arif
2026-10-04 8:19 ` Lance Yang
2026-10-02 9:52 ` [PATCH v8 27/30] mm: don't PTE-batch a swap-in over a hardware-poisoned subpage Usama Arif
2026-10-02 9:52 ` [PATCH v8 28/30] mm: handle PMD swap entry faults on swap-in Usama Arif
2026-10-04 10:19 ` Lance Yang
2026-10-02 9:52 ` [PATCH v8 29/30] mm: install PMD swap entries on swap-out Usama Arif
2026-10-02 9:52 ` [PATCH v8 30/30] selftests/mm: add PMD swap entry tests Usama Arif
2026-10-08 2:47 ` Luiz Capitulino
2026-10-02 14:28 ` [PATCH v8 00/30] mm: PMD-level swap entries for anonymous THPs David Hildenbrand (Arm)
2026-10-02 15:13 ` Zi Yan
2026-10-04 12:39 ` Usama Arif
2026-10-04 3:08 ` Lance Yang
2026-10-08 15:21 ` Luiz Capitulino
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=DLZ38NR21UU6.QIKBG8SO7189@nvidia.com \
--to=ziy@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=alex@ghiti.fr \
--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=hannes@cmpxchg.org \
--cc=kas@kernel.org \
--cc=kasong@tencent.com \
--cc=kernel-team@meta.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=luizcap@redhat.com \
--cc=nico.pache@linux.dev \
--cc=nphamcs@gmail.com \
--cc=qi.zheng@linux.dev \
--cc=riel@surriel.com \
--cc=ryan.roberts@arm.com \
--cc=shakeel.butt@linux.dev \
--cc=shikemeng@huaweicloud.com \
--cc=usama.arif@linux.dev \
--cc=vbabka@kernel.org \
--cc=willy@infradead.org \
--cc=ying.huang@linux.alibaba.com \
--cc=yosry@kernel.org \
--cc=youngjun.park@lge.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
all inboxes | Powered by JetHome®