public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: tglx@linutronix.de, mingo@kernel.org, hpa@zytor.com,
	thgarnie@google.com, kirill.shutemov@linux.intel.com,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] x86/mm/KASLR: Adjust the vmemmap size according to paging mode
Date: Wed, 29 Aug 2018 20:16:24 +0800	[thread overview]
Message-ID: <20180829121624.GA1885@192.168.1.4> (raw)
In-Reply-To: <20180829120530.6dhgsautjjrj4ztt@kshutemo-mobl1>

On 08/29/18 at 03:05pm, Kirill A. Shutemov wrote:
> On Wed, Aug 29, 2018 at 10:17:54AM +0800, Baoquan He wrote:
> > 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.
> > 
> 
> I think 512TiB is wasteful for 5-level paging. We don't need that much.
> 
> 1TiB limit with 4-level paging is required to fit struct pages for all
> 64TiB of physical memory, assuming each struct page is 64 bytes.
> 
> With 5-level paging the limit on physical memory is not 512-times bigger:
> we cap at 52-bit physical address space. So it's just 64 times bigger and
> we need only 64TiB in worst case.

Thanks, Kirill.

Exactly, the current 5-level only costs 64TB for vmemmap at most. I just
copy 512TB from Documentation/x86/x86_64/mm.txt. It might develop very
quickly to need enlarge RAM space to exceed 52bit in the future. And
KASLR and KASAN are mutually exclusive. With KASLR enabled, we can take
another 8PB space reserved for KASAN. So taking 512TB here might not
mitigate KASLR. This is my thought for this fix. But I am also fine to
change it to be 64TB for 5-level paging mode. I can change it with your
idea and repost.

Thanks
Baoquan


  reply	other threads:[~2018-08-29 12:16 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 ` [PATCH 2/2] x86/mm/KASLR: Adjust the vmemmap size according to paging mode Baoquan He
2018-08-29 12:05   ` Kirill A. Shutemov
2018-08-29 12:16     ` Baoquan He [this message]
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=20180829121624.GA1885@192.168.1.4 \
    --to=bhe@redhat.com \
    --cc=hpa@zytor.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kirill@shutemov.name \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox