On Mon, 25 Jun 2018 11:16:54 +0800
Baoquan He <[email protected]> wrote:

> This is a regression bug fix. Luiz's team reported that 1GB huge page
> allocation will get one less 1GB page randomly when KASLR is enabled. On
> their KVM guest with 4GB RAM, which only has one good 1GB huge page,
> they found the 1GB huge page allocation sometime failed with below
> kernel option adding.
> 
>   default_hugepagesz=1G hugepagesz=1G hugepages=1
> 
> This is because kernel may be randomized into those good 1GB huge pages.
> 
> And also on those bare-metal machines with larger memory, one less 1GB huge
> page might be seen with KASLR enabled than 'nokaslr' specified case. It's
> also because that kernel might be randomized into one of those good 1GB huge
> pages.
> 
> The solution in this patchset is to skip specified number of GB huge
> pages when do kernel physical randomization. If the specified number of GB
> huge pages is bigger than amount of good GB huge pages which system can
> provide, it's consistent with the current huge page implementation.

Reviewed-and-Tested-by: Luiz Capitulino <[email protected]>

> 
> v1->v2:
>   There are several code style problems and typos which were pointed out
>   by Ingo, fix them in this patchset.
> 
> Baoquan He (2):
>   x86/boot/KASLR: Add two functions for 1GB huge pages handling
>   x86/boot/KASLR: Skip specified number of 1GB huge pages when do
>     physical randomization
> 
>  arch/x86/boot/compressed/kaslr.c | 96 
> +++++++++++++++++++++++++++++++++++++---
>  1 file changed, 91 insertions(+), 5 deletions(-)
> 

Reply via email to