Re: [RESEND v7 02/29] arm64: mm: add PMD swap-exclusive helpers
From: David Hildenbrand (Arm)
Date: Fri Sep 18 2026 - 17:11:28 EST
On 9/14/26 14:27, Usama Arif wrote:
> A later patch keeps a PMD-mapped anonymous THP mapped by a PMD across the
> swap round-trip, so PG_anon_exclusive now has to survive in a swap PMD and
> not just in a swap PTE.
>
> arm64 encodes a swap PMD exactly like a swap PTE, so the new helpers wrap
> the PTE ones and reuse PTE_SWP_EXCLUSIVE.
>
> Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
> Cc: Will Deacon <will@xxxxxxxxxx>
> Signed-off-by: Usama Arif <usama.arif@xxxxxxxxx>
> ---
> arch/arm64/include/asm/pgtable.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index e89ec5f4787b4..d3f53a601aed3 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -599,6 +599,12 @@ static inline int pmd_protnone(pmd_t pmd)
> #define pmd_swp_clear_uffd(pmd) \
> pte_pmd(pte_swp_clear_uffd(pmd_pte(pmd)))
> #endif /* CONFIG_HAVE_ARCH_USERFAULTFD_WP */
> +#ifdef CONFIG_ARCH_HAS_PMD_SOFTLEAVES
> +#define pmd_swp_exclusive(pmd) pte_swp_exclusive(pmd_pte(pmd))
> +#define pmd_swp_mkexclusive(pmd) pte_pmd(pte_swp_mkexclusive(pmd_pte(pmd)))
> +#define pmd_swp_clear_exclusive(pmd) \
> + pte_pmd(pte_swp_clear_exclusive(pmd_pte(pmd)))
> +#endif
Why do we #ifdef that here, but not the uffd-wp swp PMD helper?
--
Cheers,
David