]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Documentation: arm64: Remove stale and redundant virtual memory diagrams
authorWill Deacon <will@kernel.org>
Mon, 13 Jan 2025 16:34:00 +0000 (16:34 +0000)
committerWill Deacon <will@kernel.org>
Mon, 13 Jan 2025 16:40:30 +0000 (16:40 +0000)
The arm64 'memory.rst' file tries to document the virtual memory map
and the translation procedure for a couple of kernel configurations.

Unfortunately, the virtual memory map changes relatively frequently and
we support considerably more configurations than we did when the docs
were introduced (e.g. we now have support for 16KiB pages and 52-bit
addressing). Furthermore, the Arm ARM is the definitive resource for the
translation procedure and so there's little point in duplicating part
of that information in the kernel documentation.

Rather than continue trying (and failing) to maintain these diagrams,
let's rip them out. The kernel page-table can be dumped using
CONFIG_PTDUMP_DEBUGFS if necesssary.

Link: https://lore.kernel.org/r/20250102065554.1533781-1-sangmoon.kim@samsung.com
Reported-by: Sangmoon Kim <sangmoon.kim@samsung.com>
Signed-off-by: Will Deacon <will@kernel.org>
Documentation/arch/arm64/memory.rst

index 8a658984b8bb67ce59d8198ee3be35c0d75091e9..678fbb418c3ad53327372a19bfe837df358e00af 100644 (file)
@@ -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