* [PATCH] docs: arm64: update memory layout for vmemmap region
[not found] <CGME20250102065607epcas1p296c550a7ba26884e1c2810f872e537f4@epcas1p2.samsung.com>
@ 2025-01-02 6:52 ` Sangmoon Kim
2025-01-08 13:57 ` Will Deacon
0 siblings, 1 reply; 4+ messages in thread
From: Sangmoon Kim @ 2025-01-02 6:52 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Jonathan Corbet
Cc: Sangmoon Kim, linux-arm-kernel, linux-doc, linux-kernel
Commit 031e011d8b22 ("arm64: mm: Move PCI I/O emulation region above
the vmemmap region") and commit b730b0f2b1fc ("arm64: mm: Move fixmap
region above vmemmap region") have placed PCI I/O and fixmap region
above vmemmap region.
And commit 32697ff38287 ("arm64: vmemmap: Avoid base2 order of struct
page size to dimension region") has moved vmemmap region to higher
address.
Update document as the memory layout modified by the previous patches.
Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
---
Documentation/arch/arm64/memory.rst | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/Documentation/arch/arm64/memory.rst b/Documentation/arch/arm64/memory.rst
index 8a658984b8bb..43c15cea2ec9 100644
--- a/Documentation/arch/arm64/memory.rst
+++ b/Documentation/arch/arm64/memory.rst
@@ -32,13 +32,13 @@ AArch64 Linux memory layout with 4KB pages + 4 levels (48-bit)::
ffff000000000000 ffff7fffffffffff 128TB kernel logical memory map
[ffff600000000000 ffff7fffffffffff] 32TB [kasan shadow region]
ffff800000000000 ffff80007fffffff 2GB modules
- ffff800080000000 fffffbffefffffff 124TB vmalloc
- fffffbfff0000000 fffffbfffdffffff 224MB fixed mappings (top down)
- fffffbfffe000000 fffffbfffe7fffff 8MB [guard region]
- fffffbfffe800000 fffffbffff7fffff 16MB PCI I/O space
- fffffbffff800000 fffffbffffffffff 8MB [guard region]
- fffffc0000000000 fffffdffffffffff 2TB vmemmap
- fffffe0000000000 ffffffffffffffff 2TB [guard region]
+ ffff800080000000 fffffdffbf7fffff 126TB vmalloc
+ fffffdffbf800000 fffffdffbfffffff 8MB [guard region]
+ fffffdffc0000000 ffffffffbfffffff 2TB vmemmap
+ ffffffffc0000000 ffffffffc07fffff 8MB [guard region]
+ ffffffffc0800000 ffffffffc17fffff 16MB PCI I/O space
+ ffffffffc1800000 ffffffffff7fffff 992MB fixed mappings (top down)
+ ffffffffff800000 ffffffffffffffff 8MB [guard region]
AArch64 Linux memory layout with 64KB pages + 3 levels (52-bit with HW support)::
@@ -49,13 +49,13 @@ AArch64 Linux memory layout with 64KB pages + 3 levels (52-bit with HW support):
fff0000000000000 ffff7fffffffffff ~4PB kernel logical memory map
[fffd800000000000 ffff7fffffffffff] 512TB [kasan shadow region]
ffff800000000000 ffff80007fffffff 2GB modules
- ffff800080000000 fffffbffefffffff 124TB vmalloc
- fffffbfff0000000 fffffbfffdffffff 224MB fixed mappings (top down)
- fffffbfffe000000 fffffbfffe7fffff 8MB [guard region]
- fffffbfffe800000 fffffbffff7fffff 16MB PCI I/O space
- fffffbffff800000 fffffbffffffffff 8MB [guard region]
- fffffc0000000000 ffffffdfffffffff ~4TB vmemmap
- ffffffe000000000 ffffffffffffffff 128GB [guard region]
+ ffff800080000000 fffffc1fbf7fffff 124TB vmalloc
+ fffffc1fbf800000 fffffc1fbfffffff 8MB [guard region]
+ fffffc1fc0000000 ffffffffbfffffff ~4TB vmemmap
+ ffffffffc0000000 ffffffffc07fffff 8MB [guard region]
+ ffffffffc0800000 ffffffffc17fffff 16MB PCI I/O space
+ ffffffffc1800000 ffffffffff7fffff 992MB fixed mappings (top down)
+ ffffffffff800000 ffffffffffffffff 8MB [guard region]
Translation table lookup with 4KB pages::
--
2.47.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] docs: arm64: update memory layout for vmemmap region
2025-01-02 6:52 ` [PATCH] docs: arm64: update memory layout for vmemmap region Sangmoon Kim
@ 2025-01-08 13:57 ` Will Deacon
2025-01-08 14:45 ` Catalin Marinas
2025-01-09 2:44 ` Sangmoon Kim
0 siblings, 2 replies; 4+ messages in thread
From: Will Deacon @ 2025-01-08 13:57 UTC (permalink / raw)
To: Sangmoon Kim
Cc: Catalin Marinas, Jonathan Corbet, linux-arm-kernel, linux-doc,
linux-kernel, ardb
On Thu, Jan 02, 2025 at 03:52:37PM +0900, Sangmoon Kim wrote:
> Commit 031e011d8b22 ("arm64: mm: Move PCI I/O emulation region above
> the vmemmap region") and commit b730b0f2b1fc ("arm64: mm: Move fixmap
> region above vmemmap region") have placed PCI I/O and fixmap region
> above vmemmap region.
>
> And commit 32697ff38287 ("arm64: vmemmap: Avoid base2 order of struct
> page size to dimension region") has moved vmemmap region to higher
> address.
>
> Update document as the memory layout modified by the previous patches.
>
> Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
> ---
> Documentation/arch/arm64/memory.rst | 28 ++++++++++++++--------------
> 1 file changed, 14 insertions(+), 14 deletions(-)
To be honest with you, this document is pretty stale (it doesn't even
mention 16k pages) and almost impossible to keep in-sync with the code.
I'd be inclined to remove these tables; we have ptdump support if people
really want to see where things are.
Will
--->8
diff --git a/Documentation/arch/arm64/memory.rst b/Documentation/arch/arm64/memory.rst
index 8a658984b8bb..678fbb418c3a 100644
--- a/Documentation/arch/arm64/memory.rst
+++ b/Documentation/arch/arm64/memory.rst
@@ -23,71 +23,6 @@ swapper_pg_dir contains only kernel (global) mappings while the user pgd
contains only user (non-global) mappings. The swapper_pg_dir address is
written to TTBR1 and never written to TTBR0.
-
-AArch64 Linux memory layout with 4KB pages + 4 levels (48-bit)::
-
- Start End Size Use
- -----------------------------------------------------------------------
- 0000000000000000 0000ffffffffffff 256TB user
- ffff000000000000 ffff7fffffffffff 128TB kernel logical memory map
- [ffff600000000000 ffff7fffffffffff] 32TB [kasan shadow region]
- ffff800000000000 ffff80007fffffff 2GB modules
- ffff800080000000 fffffbffefffffff 124TB vmalloc
- fffffbfff0000000 fffffbfffdffffff 224MB fixed mappings (top down)
- fffffbfffe000000 fffffbfffe7fffff 8MB [guard region]
- fffffbfffe800000 fffffbffff7fffff 16MB PCI I/O space
- fffffbffff800000 fffffbffffffffff 8MB [guard region]
- fffffc0000000000 fffffdffffffffff 2TB vmemmap
- fffffe0000000000 ffffffffffffffff 2TB [guard region]
-
-
-AArch64 Linux memory layout with 64KB pages + 3 levels (52-bit with HW support)::
-
- Start End Size Use
- -----------------------------------------------------------------------
- 0000000000000000 000fffffffffffff 4PB user
- fff0000000000000 ffff7fffffffffff ~4PB kernel logical memory map
- [fffd800000000000 ffff7fffffffffff] 512TB [kasan shadow region]
- ffff800000000000 ffff80007fffffff 2GB modules
- ffff800080000000 fffffbffefffffff 124TB vmalloc
- fffffbfff0000000 fffffbfffdffffff 224MB fixed mappings (top down)
- fffffbfffe000000 fffffbfffe7fffff 8MB [guard region]
- fffffbfffe800000 fffffbffff7fffff 16MB PCI I/O space
- fffffbffff800000 fffffbffffffffff 8MB [guard region]
- fffffc0000000000 ffffffdfffffffff ~4TB vmemmap
- ffffffe000000000 ffffffffffffffff 128GB [guard region]
-
-
-Translation table lookup with 4KB pages::
-
- +--------+--------+--------+--------+--------+--------+--------+--------+
- |63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0|
- +--------+--------+--------+--------+--------+--------+--------+--------+
- | | | | | |
- | | | | | v
- | | | | | [11:0] in-page offset
- | | | | +-> [20:12] L3 index
- | | | +-----------> [29:21] L2 index
- | | +---------------------> [38:30] L1 index
- | +-------------------------------> [47:39] L0 index
- +----------------------------------------> [55] TTBR0/1
-
-
-Translation table lookup with 64KB pages::
-
- +--------+--------+--------+--------+--------+--------+--------+--------+
- |63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0|
- +--------+--------+--------+--------+--------+--------+--------+--------+
- | | | | |
- | | | | v
- | | | | [15:0] in-page offset
- | | | +----------> [28:16] L3 index
- | | +--------------------------> [41:29] L2 index
- | +-------------------------------> [47:42] L1 index (48-bit)
- | [51:42] L1 index (52-bit)
- +----------------------------------------> [55] TTBR0/1
-
-
When using KVM without the Virtualization Host Extensions, the
hypervisor maps kernel pages in EL2 at a fixed (and potentially
random) offset from the linear mapping. See the kern_hyp_va macro and
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] docs: arm64: update memory layout for vmemmap region
2025-01-08 13:57 ` Will Deacon
@ 2025-01-08 14:45 ` Catalin Marinas
2025-01-09 2:44 ` Sangmoon Kim
1 sibling, 0 replies; 4+ messages in thread
From: Catalin Marinas @ 2025-01-08 14:45 UTC (permalink / raw)
To: Will Deacon
Cc: Sangmoon Kim, Jonathan Corbet, linux-arm-kernel, linux-doc,
linux-kernel, ardb
On Wed, Jan 08, 2025 at 01:57:48PM +0000, Will Deacon wrote:
> On Thu, Jan 02, 2025 at 03:52:37PM +0900, Sangmoon Kim wrote:
> > Commit 031e011d8b22 ("arm64: mm: Move PCI I/O emulation region above
> > the vmemmap region") and commit b730b0f2b1fc ("arm64: mm: Move fixmap
> > region above vmemmap region") have placed PCI I/O and fixmap region
> > above vmemmap region.
> >
> > And commit 32697ff38287 ("arm64: vmemmap: Avoid base2 order of struct
> > page size to dimension region") has moved vmemmap region to higher
> > address.
> >
> > Update document as the memory layout modified by the previous patches.
> >
> > Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
> > ---
> > Documentation/arch/arm64/memory.rst | 28 ++++++++++++++--------------
> > 1 file changed, 14 insertions(+), 14 deletions(-)
>
> To be honest with you, this document is pretty stale (it doesn't even
> mention 16k pages) and almost impossible to keep in-sync with the code.
> I'd be inclined to remove these tables; we have ptdump support if people
> really want to see where things are.
I agree. They were somewhat useful in the early days when we didn't have
as many combinations but now they get outdated easily and I'm not sure
anyone still uses them as a reference.
--
Catalin
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] docs: arm64: update memory layout for vmemmap region
2025-01-08 13:57 ` Will Deacon
2025-01-08 14:45 ` Catalin Marinas
@ 2025-01-09 2:44 ` Sangmoon Kim
1 sibling, 0 replies; 4+ messages in thread
From: Sangmoon Kim @ 2025-01-09 2:44 UTC (permalink / raw)
To: will
Cc: ardb, catalin.marinas, corbet, linux-arm-kernel, linux-doc,
linux-kernel, sangmoon.kim
> -----Original Message-----
> From: Will Deacon <will@kernel.org>
> Sent: Wednesday, January 8, 2025 10:58 PM
>
> On Thu, Jan 02, 2025 at 03:52:37PM +0900, Sangmoon Kim wrote:
> > Commit 031e011d8b22 ("arm64: mm: Move PCI I/O emulation region above
> > the vmemmap region") and commit b730b0f2b1fc ("arm64: mm: Move fixmap
> > region above vmemmap region") have placed PCI I/O and fixmap region
> > above vmemmap region.
> >
> > And commit 32697ff38287 ("arm64: vmemmap: Avoid base2 order of struct
> > page size to dimension region") has moved vmemmap region to higher
> > address.
> >
> > Update document as the memory layout modified by the previous patches.
> >
> > Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
> > ---
> > Documentation/arch/arm64/memory.rst | 28 ++++++++++++++--------------
> > 1 file changed, 14 insertions(+), 14 deletions(-)
>
> To be honest with you, this document is pretty stale (it doesn't even
> mention 16k pages) and almost impossible to keep in-sync with the code.
> I'd be inclined to remove these tables; we have ptdump support if people
> really want to see where things are.
>
> Will
>
I get it. Thank you for your answer.
Sangmoon
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-01-09 2:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20250102065607epcas1p296c550a7ba26884e1c2810f872e537f4@epcas1p2.samsung.com>
2025-01-02 6:52 ` [PATCH] docs: arm64: update memory layout for vmemmap region Sangmoon Kim
2025-01-08 13:57 ` Will Deacon
2025-01-08 14:45 ` Catalin Marinas
2025-01-09 2:44 ` Sangmoon Kim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).