[PATCHv5 0/7] 5-level paging changes for v4.18
From: Kirill A. Shutemov
Date: Fri May 18 2018 - 05:40:50 EST
Here's several patches that I would like to queue for v4.18. Please review
and consider applying.
In this version I've addressed Thomas' feedback.
Changing __pgtable_l5_enabled to __initdata is not as trivial as I hoped.
It requires few tricks to avoid section mismatch. I'm not sure if it worth
the gain. We can keep it __ro_after_init.
If you feel it's too invasive, just drop last three patches.
Kirill A. Shutemov (7):
x86/boot/compressed/64: Fix trampoline page table address calculation
x86/mm: Unify pgtable_l5_enabled usage in early boot code
x86/mm: Stop pretending pgtable_l5_enabled is a variable
x86/mm: Introduce 'no5lvl' kernel parameter
x86/cpu: Move early cpu initialization into a separate translation
unit
x86/mm: Mark p4d_offset() __always_inline
x86/mm: Mark __pgtable_l5_enabled __initdata
.../admin-guide/kernel-parameters.txt | 3 +
arch/x86/boot/compressed/cmdline.c | 2 +-
arch/x86/boot/compressed/head_64.S | 1 +
arch/x86/boot/compressed/kaslr.c | 4 +-
arch/x86/boot/compressed/misc.h | 6 +-
arch/x86/boot/compressed/pgtable_64.c | 14 +-
arch/x86/include/asm/page_64_types.h | 2 +-
arch/x86/include/asm/paravirt.h | 4 +-
arch/x86/include/asm/pgalloc.h | 4 +-
arch/x86/include/asm/pgtable.h | 12 +-
arch/x86/include/asm/pgtable_32_types.h | 2 +-
arch/x86/include/asm/pgtable_64.h | 2 +-
arch/x86/include/asm/pgtable_64_types.h | 25 ++-
arch/x86/include/asm/sparsemem.h | 4 +-
arch/x86/kernel/cpu/Makefile | 1 +
arch/x86/kernel/cpu/common.c | 179 +++---------------
arch/x86/kernel/cpu/cpu.h | 7 +
arch/x86/kernel/cpu/early.c | 159 ++++++++++++++++
arch/x86/kernel/head64.c | 25 ++-
arch/x86/kernel/machine_kexec_64.c | 3 +-
arch/x86/mm/dump_pagetables.c | 6 +-
arch/x86/mm/fault.c | 4 +-
arch/x86/mm/ident_map.c | 2 +-
arch/x86/mm/init_64.c | 8 +-
arch/x86/mm/kasan_init_64.c | 14 +-
arch/x86/mm/kaslr.c | 8 +-
arch/x86/mm/tlb.c | 2 +-
arch/x86/platform/efi/efi_64.c | 2 +-
arch/x86/power/hibernate_64.c | 2 +-
29 files changed, 279 insertions(+), 228 deletions(-)
create mode 100644 arch/x86/kernel/cpu/early.c
--
2.17.0