Re: [PATCHv9 0/4] x86: 5-level related changes into decompression code

From: Ingo Molnar
Date: Sun Feb 11 2018 - 06:37:29 EST



* Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:

> These patcheset is a preparation for boot-time switching between paging
> modes. Please apply.
>
> The first patch is pure cosmetic change: it gives file with KASLR helpers
> a proper name.
>
> The last three patches bring support of booting into 5-level paging mode if
> a bootloader put the kernel above 4G.
>
> Patch 2/4 Renames l5_paging_required() into paging_prepare() and change
> interface of the function.
> Patch 3/4 Handles allocation of space for trampoline and gets it prepared.
> Patch 4/4 Gets trampoline used.
>
> v9:
> - Patch 3 now saves and restores lowmem used for trampoline.
>
> There was report the patch causes issue on a machine. I suspect it's
> BIOS issue that doesn't report proper bounds of usable lowmem.
>
> Restoring memory back to oringinal state makes problem go away.
> v8:
> - Support switching from 5- to 4-level paging.
> v7:
> - Fix booting when 5-level paging is enabled before handing off boot to
> the kernel, like in kexec() case.
>
> Kirill A. Shutemov (4):
> x86/boot/compressed/64: Rename pagetable.c to kaslr_64.c
> x86/boot/compressed/64: Introduce paging_prepare()
> x86/boot/compressed/64: Prepare trampoline memory
> x86/boot/compressed/64: Handle 5-level paging boot if kernel is above
> 4G
>
> arch/x86/boot/compressed/Makefile | 2 +-
> arch/x86/boot/compressed/head_64.S | 178 ++++++++++++++-------
> .../boot/compressed/{pagetable.c => kaslr_64.c} | 0
> arch/x86/boot/compressed/pgtable.h | 18 +++
> arch/x86/boot/compressed/pgtable_64.c | 100 ++++++++++--
> 5 files changed, 232 insertions(+), 66 deletions(-)
> rename arch/x86/boot/compressed/{pagetable.c => kaslr_64.c} (100%)
> create mode 100644 arch/x86/boot/compressed/pgtable.h

Ok, this series looks pretty good - I've applied it to tip:x86/boot for an
eventual 4.17 merge and will push it out if it passes local testing.

Thanks,

Ingo