* [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