From: Catalin Marinas <catalin.marinas@arm.com>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-arm-kernel@lists.infradead.org,
Will Deacon <will@kernel.org>,
Ryan Roberts <ryan.roberts@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Lorenzo Stoakes <ljs@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
David Hildenbrand <david@kernel.org>,
Mike Rapoport <rppt@kernel.org>,
Linu Cherian <linu.cherian@arm.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
kasan-dev@googlegroups.com
Subject: Re: [PATCH V3 1/4] arm64/mm: Use pmdp_get() for PMD accesses
Date: Mon, 12 Oct 2026 12:04:11 +0100 [thread overview]
Message-ID: <asy-q5SBnrBQSadP@arm.com> (raw)
In-Reply-To: <lqjq64vw6mlm27kp6ffms6auerj67avecc4ongedouumsrspjh@2f2eblm7wi4u>
On Wed, Oct 07, 2026 at 08:11:52AM +0530, Anshuman Khandual wrote:
> On Mon, Oct 05, 2026 at 04:31:28PM +0100, Catalin Marinas wrote:
> > On Thu, Sep 24, 2026 at 11:52:11AM +0530, Anshuman Khandual wrote:
> > > diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> > > index 763c5a411d64..9ad2d03e86ad 100644
> > > --- a/arch/arm64/include/asm/pgtable.h
> > > +++ b/arch/arm64/include/asm/pgtable.h
> > > @@ -84,6 +84,12 @@ static inline void arch_leave_lazy_mmu_mode(void)
> > > arch_flush_lazy_mmu_mode();
> > > }
> > >
> > > +#define pmdp_get pmdp_get
> > > +static inline pmd_t pmdp_get(pmd_t *pmdp)
> > > +{
> > > + return READ_ONCE(*pmdp);
> > > +}
> >
> > This is the same as the generic version. Does it need redefining?
>
> Without this pmdp_get() override, replacing READ_ONCE() in pmdp_test_and_clear_young()
> with pmdp_get() causes a build failure as pmpd_get() which is defined in the generic
> pgtable header is not visible from inside platform specific pgtable header, even with
> a forward declaration.
>
> Earlier had moved pmdp_test_and_clear_young() inside arch/arm64/mm/mmu.c to avoid the
> above described dependency problem. But then realised that pmdp_get() gets eventually
> overridden on arm64 platform for D128, why not just redefine here it now as standard
> READ_ONCE() to avoid the current build problem and the code movement.
>
> Please find some context here from earlier discussions during V2.
>
> https://lore.kernel.org/all/212067fe-1b16-4b87-87a7-4ce50847eb24@arm.com/
Thanks for link summary of the past discussion. I agree, for D128 we'll
have to define our p*d_get() but I haven't decided D128 is worth merging
yet (it depends on future hardware availability, I need to get more
visibility into this).
For the time being, I'd keep the p*d_get() accessors generic and move
pmdp_test_and_clear_young() to mmu.c.
> > > #ifdef CONFIG_TRANSPARENT_HUGEPAGE
> > > #define __HAVE_ARCH_FLUSH_PMD_TLB_RANGE
> > >
> > > @@ -811,7 +817,8 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd)
> > > }
> > >
> > > /* Find an entry in the third-level page table. */
> > > -#define pte_offset_phys(dir,addr) (pmd_page_paddr(READ_ONCE(*(dir))) + pte_index(addr) * sizeof(pte_t))
> > > +#define pte_offset_phys(dir, addr) (pmd_page_paddr(pmdp_get(dir)) + \
> > > + pte_index(addr) * sizeof(pte_t))
> >
> > Why not make this change in the generic version?
>
> Could you please elaborate on this ? pte_offset_phys() is arm64 specific helper which
> is also local to this header file. AFAICT there is no generic version for this helper.
You are right, I got confused.
Anyway, I'd push this series post -rc1. It depends on the mm tree and
it's getting pretty close to the merging window.
--
Catalin
next prev parent reply other threads:[~2026-10-12 11:04 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 6:22 [PATCH V3 0/4] arm64/mm: Convert pgtable READ_ONCE() as pxdp_get() Anshuman Khandual
2026-09-24 6:22 ` [PATCH V3 1/4] arm64/mm: Use pmdp_get() for PMD accesses Anshuman Khandual
2026-09-24 12:09 ` Ryan Roberts
2026-10-05 15:31 ` Catalin Marinas
2026-10-07 2:41 ` Anshuman Khandual
2026-10-12 11:04 ` Catalin Marinas [this message]
2026-10-13 5:12 ` Anshuman Khandual
2026-09-24 6:22 ` [PATCH V3 2/4] arm64/mm: Use pudp_get() for PUD accesses Anshuman Khandual
2026-09-24 12:10 ` Ryan Roberts
2026-09-24 6:22 ` [PATCH V3 3/4] arm64/mm: Use p4dp_get() for P4D accesses Anshuman Khandual
2026-09-24 12:10 ` Ryan Roberts
2026-09-24 6:22 ` [PATCH V3 4/4] arm64/mm: Use pgdp_get() for PGD accesses Anshuman Khandual
2026-09-24 12:10 ` Ryan Roberts
2026-10-05 6:41 ` [PATCH V3 0/4] arm64/mm: Convert pgtable READ_ONCE() as pxdp_get() Anshuman Khandual
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=asy-q5SBnrBQSadP@arm.com \
--to=catalin.marinas@arm.com \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=david@kernel.org \
--cc=kasan-dev@googlegroups.com \
--cc=linu.cherian@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mark.rutland@arm.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=will@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.