linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).