All of lore.kernel.org
 help / color / mirror / Atom feed
From: "David Hildenbrand (Arm)" <david@kernel.org>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	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>,
	Mike Rapoport <rppt@kernel.org>,
	Linu Cherian <linu.cherian@arm.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH V2 06/14] arm64/mm: Enable fixmap with 5 level page table
Date: Thu, 17 Sep 2026 20:28:10 +0200	[thread overview]
Message-ID: <efdec0bc-cab0-451f-ad70-ac24c1f69fdd@kernel.org> (raw)
In-Reply-To: <pi6o4hjdaz2tndzlx64qvzbgxhuyh3kyewpfetiqnnetbtpzpa@prrxusgc3lpm>

On 9/17/26 08:18, Anshuman Khandual wrote:
> On Wed, Sep 16, 2026 at 04:30:05PM +0200, David Hildenbrand (Arm) wrote:
>> On 9/7/26 05:50, Anshuman Khandual wrote:
>>> FEAT_D128 halves PTRS_PER_PXX thus shrinking the VA range coverage
>>> for each page table level. Hence in order to preserve all existing
>>> VA range configurations, some geometry now need to become 5-level.
>>>
>>
>> Hmm, wasn't this 5-levels before, but other code allocated+initialized the p4d
>> table for us?
> 
> But fixmap was never 5 level earlier.

I mean the page table hierarchy. It's confusing.

> 
>>
>> I mean, I see how we are filling in another level, but I don't see how we would
>> reconfigure something to use 5 page table levels?
> 
> IIUC existing configurations which never required 5 levels would not need
> this reconfiguration even now.

We only map a handful of MB into a single leaf page table. The only reason why
we have to install more page tables into upper levels is because they were not
instantiated by other code.

> 
>>
>>> Since fixmap is used to build and manipulate page tables early on
>>> during boot the mapping must also gain that additional level which
>>> was not required earlier.
>>
>> I am no expert ... but I am confused :)
>>
>> We do have a loop only in early_fixmap_init_pmd(). So we cannot possibly span
>> more than a single ... PTE table?
>>
>>>
>>> Enable fixmap with 5 level page table when required. This creates table
>>> entries at the PGD level. Add a fallback stub for pgd_page_paddr() when
>>> (PGTBALE_LEVELS <= 4) which helps in intercepting any unintended usage.
>>
>>
>> Again, I am very confused. Is it really just "As the page table layout changes,
>> we might no longer have a p4d table pre-populated for the range our fixmap falls
>> into. So if there is no p4d table yet, populate a static one just like we do for
>> the other levels."
> 
> Right.

Best to rewrite the patch description along these lines.

-- 
Cheers,

David


  reply	other threads:[~2026-09-17 18:28 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-07  3:50 [PATCH V2 00/14] arm64/mm: Enable 128 bit page table entries Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 01/14] mm: Add read-write accessors for vm_page_prot Anshuman Khandual
2026-09-16 13:23   ` David Hildenbrand (Arm)
2026-09-16 13:41     ` Lorenzo Stoakes (ARM)
2026-09-17  4:02     ` Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 02/14] arm64/mm: Route all pgtable reads via ptval_get() Anshuman Khandual
2026-09-16 13:35   ` David Hildenbrand (Arm)
2026-09-16 13:38   ` David Hildenbrand (Arm)
2026-09-17  4:26     ` Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 03/14] arm64/mm: Route all pgtable writes via ptval_set() Anshuman Khandual
2026-09-16 13:36   ` David Hildenbrand (Arm)
2026-09-07  3:50 ` [PATCH V2 04/14] arm64/mm: Route all pgtable atomics to central helpers Anshuman Khandual
2026-09-16 13:39   ` David Hildenbrand (Arm)
2026-09-17  4:18     ` Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 05/14] arm64/mm: Override read-write accessors for vm_page_prot Anshuman Khandual
2026-09-16 13:39   ` David Hildenbrand (Arm)
2026-09-17  4:09     ` Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 06/14] arm64/mm: Enable fixmap with 5 level page table Anshuman Khandual
2026-09-16 14:30   ` David Hildenbrand (Arm)
2026-09-17  6:18     ` Anshuman Khandual
2026-09-17 18:28       ` David Hildenbrand (Arm) [this message]
2026-09-07  3:50 ` [PATCH V2 07/14] arm64/mm: Enable pgtable geometry for FEAT_D128 Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 08/14] arm64/mm: Enable pgtable descriptor " Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 09/14] arm64/mm: Enable 128 bit translation Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 10/14] arm64/mm: Add an abstraction level for tlbi_op Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 11/14] arm64/mm: Enable TLBIP instruction based TLB flush Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 12/14] arm64/mm: Relax KASAN shadow alignment for FEAT_D128 Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 13/14] arm64/mm: Make ARM64_D128 selectable Anshuman Khandual
2026-09-07  3:50 ` [PATCH V2 14/14] arm64/configs: Add d128.config 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=efdec0bc-cab0-451f-ad70-ac24c1f69fdd@kernel.org \
    --to=david@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=catalin.marinas@arm.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.