All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: tglx@linutronix.de, mingo@kernel.org, hpa@zytor.com,
	thgarnie@google.com, kirill.shutemov@linux.intel.com
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
	Baoquan He <bhe@redhat.com>
Subject: [PATCH 2/2] x86/mm/KASLR: Adjust the vmemmap size according to paging mode
Date: Wed, 29 Aug 2018 10:17:54 +0800	[thread overview]
Message-ID: <20180829021754.21850-2-bhe@redhat.com> (raw)
In-Reply-To: <20180829021754.21850-1-bhe@redhat.com>

Vmemmap area has different base and size depending on paging mode.
Now we just hardcode its size as 1TB in memory KASLR, it's not
right for 5-level paging mode.

Adjust it according to paging mode and use it during memory KASLR.

Signed-off-by: Baoquan He <bhe@redhat.com>
---
 arch/x86/include/asm/pgtable_64_types.h | 5 +++++
 arch/x86/mm/kaslr.c                     | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h
index 04edd2d58211..fa759d2d3186 100644
--- a/arch/x86/include/asm/pgtable_64_types.h
+++ b/arch/x86/include/asm/pgtable_64_types.h
@@ -126,14 +126,19 @@ extern unsigned int ptrs_per_p4d;
 #define __VMEMMAP_BASE_L4	0xffffea0000000000UL
 #define __VMEMMAP_BASE_L5	0xffd4000000000000UL
 
+#define VMEMMAP_SIZE_TB_L4	1UL
+#define VMEMMAP_SIZE_TB_L5	512UL
+
 #ifdef CONFIG_DYNAMIC_MEMORY_LAYOUT
 # define VMALLOC_START		vmalloc_base
 # define VMALLOC_SIZE_TB	(pgtable_l5_enabled() ? VMALLOC_SIZE_TB_L5 : VMALLOC_SIZE_TB_L4)
 # define VMEMMAP_START		vmemmap_base
+# define VMEMMAP_SIZE_TB	(pgtable_l5_enabled() ? VMEMMAP_SIZE_TB_L5 : VMEMMAP_SIZE_TB_L4)
 #else
 # define VMALLOC_START		__VMALLOC_BASE_L4
 # define VMALLOC_SIZE_TB	VMALLOC_SIZE_TB_L4
 # define VMEMMAP_START		__VMEMMAP_BASE_L4
+# define VMEMMAP_SIZE_TB	VMEMMAP_SIZE_TB_L4
 #endif /* CONFIG_DYNAMIC_MEMORY_LAYOUT */
 
 #define VMALLOC_END		(VMALLOC_START + (VMALLOC_SIZE_TB << 40) - 1)
diff --git a/arch/x86/mm/kaslr.c b/arch/x86/mm/kaslr.c
index 0988971069c9..69228af4c7d7 100644
--- a/arch/x86/mm/kaslr.c
+++ b/arch/x86/mm/kaslr.c
@@ -51,7 +51,7 @@ static __initdata struct kaslr_memory_region {
 } kaslr_regions[] = {
 	{ &page_offset_base, 0 },
 	{ &vmalloc_base, 0 },
-	{ &vmemmap_base, 1 },
+	{ &vmemmap_base, 0 },
 };
 
 /* Get size in bytes used by the memory region */
@@ -95,6 +95,7 @@ void __init kernel_randomize_memory(void)
 
 	kaslr_regions[0].size_tb = 1 << (MAX_PHYSMEM_BITS - TB_SHIFT);
 	kaslr_regions[1].size_tb = VMALLOC_SIZE_TB;
+	kaslr_regions[2].size_tb = VMEMMAP_SIZE_TB;
 
 	/*
 	 * Update Physical memory mapping to available and
-- 
2.13.6


  reply	other threads:[~2018-08-29  2:18 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-29  2:17 [PATCH 1/2] x86/mm/KASLR: Fix the wrong calculation of kalsr region initial size Baoquan He
2018-08-29  2:17 ` Baoquan He [this message]
2018-08-29 12:05   ` [PATCH 2/2] x86/mm/KASLR: Adjust the vmemmap size according to paging mode Kirill A. Shutemov
2018-08-29 12:16     ` Baoquan He
2018-08-29 12:18     ` Baoquan He
2018-08-29 12:26       ` Kirill A. Shutemov
2018-08-29 12:51         ` Baoquan He
2018-08-30 15:25     ` Baoquan He
2018-09-02 20:52       ` Kirill A. Shutemov
2018-09-03  7:47         ` Baoquan He
2018-09-03 10:26           ` Kirill A. Shutemov
2018-09-03 14:52             ` Baoquan He
2018-09-04  8:13               ` Kirill A. Shutemov
2018-09-05  8:15                 ` Baoquan He
2018-09-05 12:09                   ` Kirill A. Shutemov
2018-09-05 12:37                     ` Baoquan He
2018-08-29 11:49 ` [PATCH 1/2] x86/mm/KASLR: Fix the wrong calculation of kalsr region initial size Kirill A. Shutemov
2018-09-04 17:57   ` Thomas Garnier
2018-09-08 12:10 ` Thomas Gleixner
2018-09-08 13:33   ` Baoquan He

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=20180829021754.21850-2-bhe@redhat.com \
    --to=bhe@redhat.com \
    --cc=hpa@zytor.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=thgarnie@google.com \
    --cc=x86@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.