Re: [PATCH v2 1/3] x86/KASLR: Update document about KERNEL_IMAGE_SIZE

From: Ingo Molnar
Date: Wed Oct 03 2018 - 03:52:35 EST



* Baoquan He <bhe@xxxxxxxxxx> wrote:

> Currently CONFIG_RANDOMIZE_BASE=y is default set, update the relevant
> document about KERNEL_IMAGE_SIZE.

Suggested wording:

x86/KASLR: Update KERNEL_IMAGE_SIZE description

Currently CONFIG_RANDOMIZE_BASE=y is set by default, which makes some of the
old comments above the KERNEL_IMAGE_SIZE definition out of date. Update them
to the current state of affairs.

> Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>
> ---
> arch/x86/include/asm/page_64_types.h | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/arch/x86/include/asm/page_64_types.h b/arch/x86/include/asm/page_64_types.h
> index 6afac386a434..2288ceabdb9c 100644
> --- a/arch/x86/include/asm/page_64_types.h
> +++ b/arch/x86/include/asm/page_64_types.h
> @@ -61,9 +61,10 @@
> /*
> * Kernel image size is limited to 1GiB due to the fixmap living in the
> * next 1GiB (see level2_kernel_pgt in arch/x86/kernel/head_64.S). Use
> - * 512MiB by default, leaving 1.5GiB for modules once the page tables
> - * are fully set up. If kernel ASLR is configured, it can extend the
> - * kernel page table mapping, reducing the size of the modules area.
> + * 1 GiB by default, leaving 1 GiB for modules once the page tables are
> + * fully set up. If kernel ASLR is not configured, it can shrink the
> + * kernel page table mapping to decrease the size of kernel area to 512
> + * MiB, increase the size of the modules area to 1.5 GiB.
> */

I've prettified that comment some more:

/*
* Maximum kernel image size is limited to 1 GiB, due to the fixmap living
* in the next 1 GiB (see level2_kernel_pgt in arch/x86/kernel/head_64.S).
*
* On KASLR use 1 GiB by default, leaving 1 GiB for modules once the
* page tables are fully set up.
*
* If KASLR is disabled we can shrink it to 0.5 GiB and increase the size
* of the modules area to 1.5 GiB.
*/

> #if defined(CONFIG_RANDOMIZE_BASE)
> #define KERNEL_IMAGE_SIZE (1024 * 1024 * 1024)

BTW., while at it, shouldn't we make that:

#ifdef CONFIG_RANDOMIZE_BASE

?

Thanks,

Ingo