[PATCH V3 0/4] arm64/mm: Convert pgtable READ_ONCE() as pxdp_get()
Anshuman Khandual
anshuman.khandual at arm.com
Sun Oct 4 23:41:34 PDT 2026
On Thu, Sep 24, 2026 at 11:52:10AM +0530, Anshuman Khandual wrote:
> Route READ_ONCE() accesses on pgtable entries via level specific generic MM
> pxdp_get() helpers which platforms could then override when required. These
> accessors on arm64, will help in ensuring page table accesses are performed
> in an atomic manner while reading 128 bit page table entries later. But for
> now they just default to READ_ONCE(), thus preserving existing behaviour on
> current D64 translation a well.
>
> This is similar to generic MM where all atomic accesses have already been
> converted from READ_ONCE() into pgtable level specific accessors.
>
> These are preparatory patches for D128 enablement, although standing their
> own for D64 translation as well. These patches are split from earlier D128
> V1 series. There are no functional changes here and besides mm kselftests
> do not show any regression.
>
> https://lore.kernel.org/linux-mm/20260729122452.3797443-1-anshuman.khandual@arm.com/
>
> This series applies on v7.3-rc4 but after applying the following patches on
> pgtable entry print standardization posted earlier.
>
> https://lore.kernel.org/linux-mm/20260831054331.625505-1-anshuman.khandual@arm.com/
>
> https://lore.kernel.org/linux-mm/20260916044933.2689426-1-anshuman.khandual@arm.com/
Hello Catalin/Andrew,
The above mentioned dependencies are already in mm-unstable, thus reflecting
in linux-next as well. Just to rule out merge conflict - this series applies
cleanly, builds and boots on latest tag next-20261002, which contains above
dependencies. But please do let me know if there are still some issues in
resolving this situation - will be happy to help. Thank you.
- Anshuman
>
> These patches have been hosted here as well.
>
> git at git.gitlab.arm.com:linux-arm/linux-anshuman.git (arm64_pxdp_get_v3)
>
> Changes in V3:
>
> - Added overrides for pxdp_get() and replaced remaining READ_ONCE()
> - Updated all commit messages as required
> - Dropped previous tags
>
> Changes in V2:
>
> https://lore.kernel.org/all/20260922061638.3967467-1-anshuman.khandual@arm.com/
>
> - Rebased on v7.3-rc4 along with all latest dependencies
> - Updated commit messages per Ryan
> - Added tags from Ryan
>
> Changes in V1:
>
> https://lore.kernel.org/all/20260903060657.2717457-1-anshuman.khandual@arm.com/
>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Will Deacon <will at kernel.org>
> Cc: Ryan Roberts <ryan.roberts at arm.com>
> Cc: Mark Rutland <mark.rutland at arm.com>
> Cc: Lorenzo Stoakes <ljs at kernel.org>
> Cc: Andrew Morton <akpm at linux-foundation.org>
> Cc: David Hildenbrand <david at kernel.org>
> Cc: Mike Rapoport <rppt at kernel.org>
> Cc: Linu Cherian <linu.cherian at arm.com>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
>
> Anshuman Khandual (4):
> arm64/mm: Use pmdp_get() for PMD accesses
> arm64/mm: Use pudp_get() for PUD accesses
> arm64/mm: Use p4dp_get() for P4D accesses
> arm64/mm: Use pgdp_get() for PGD accesses
>
> arch/arm64/include/asm/pgtable.h | 40 +++++++++++++++++----
> arch/arm64/mm/fault.c | 8 ++---
> arch/arm64/mm/fixmap.c | 6 ++--
> arch/arm64/mm/hugetlbpage.c | 10 +++---
> arch/arm64/mm/kasan_init.c | 18 +++++-----
> arch/arm64/mm/mmu.c | 60 ++++++++++++++++----------------
> arch/arm64/mm/pageattr.c | 8 ++---
> arch/arm64/mm/trans_pgd.c | 14 ++++----
> 8 files changed, 95 insertions(+), 69 deletions(-)
>
> --
> 2.43.0
>
More information about the linux-arm-kernel
mailing list