[GIT PULL] x86/mm changes for v4.20

From: Ingo Molnar
Date: Tue Oct 23 2018 - 08:03:48 EST


Please pull the latest x86-mm-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-mm-for-linus

# HEAD: 977e4be5eb714c48a67afc26a6c477f24130a1f2 x86/stackprotector: Remove the call to boot_init_stack_canary() from cpu_startup_entry()

Lots of changes in this cycle:

- Lots of CPA optimizations and related cleanups (Thomas Gleixner, Peter Zijstra)

- Make lazy TLB mode even lazier (Rik van Riel)

- Fault handler cleanups and improvements (Dave Hansen)

- kdump, vmcore: Enable kdumping encrypted memory with AMD SME enabled
(Lianbo Jiang)

- Clean up VM layout documentation (Baoquan He, Ingo Molnar)

- ... plus misc other fixes and enhancements.




Baoquan He (2):
x86/KASLR: Update KERNEL_IMAGE_SIZE description
x86/mm/doc: Clean up the x86-64 virtual memory layout descriptions

Bjorn Helgaas (3):
x86/kexec: Correct KEXEC_BACKUP_SRC_END off-by-one error
resource: Include resource end in walk_*() interfaces
resource: Fix find_next_iomem_res() iteration issue

Borislav Petkov (2):
proc/vmcore: Fix i386 build error of missing copy_oldmem_page_encrypted()
resource: Clean it up a bit

Christophe Leroy (1):
x86/stackprotector: Remove the call to boot_init_stack_canary() from cpu_startup_entry()

Dave Hansen (9):
x86/mm: Clarify hardware vs. software "error_code"
x86/mm: Break out kernel address space handling
x86/mm: Break out user address space handling
x86/mm: Add clarifying comments for user addr space
x86/mm: Fix exception table comments
x86/mm: Add vsyscall address helper
x86/mm/vsyscall: Consider vsyscall page part of user address space
x86/mm: Remove spurious fault pkey check
x86/mm: Kill stray kernel fault handling comment

Ingo Molnar (1):
x86/mm/doc: Enhance the x86-64 virtual memory layout descriptions

Lianbo Jiang (4):
x86/ioremap: Add an ioremap_encrypted() helper
kexec: Allocate decrypted control pages for kdump if SME is enabled
iommu/amd: Remap the IOMMU device table with the memory encryption mask for kdump
kdump, proc/vmcore: Enable kdumping encrypted memory with SME enabled

Peter Zijlstra (9):
x86/mm/cpa: Use flush_tlb_all()
x86/mm/cpa: Move flush_tlb_all()
x86/mm/cpa: Unconditionally avoid WBINDV when we can
x86/mm/cpa: Use flush_tlb_kernel_range()
x86/mm/cpa: Move CLFLUSH test into cpa_flush_range()
x86/mm/cpa: Move CLFLUSH test into cpa_flush_array()
x86/mm/cpa: Factor common code between cpa_flush_*()
x86/mm/cpa: Optimize __cpa_flush_range()
x86/mm: Page size aware flush_tlb_mm_range()

Rik van Riel (7):
x86/mm/tlb: Always use lazy TLB mode
x86/mm/tlb: Restructure switch_mm_irqs_off()
smp: use __cpumask_set_cpu in on_each_cpu_cond
smp,cpumask: introduce on_each_cpu_cond_mask
x86/mm/tlb: Add freed_tables argument to flush_tlb_mm_range
x86/mm/tlb: Add freed_tables element to flush_tlb_info
x86/mm/tlb: Make lazy TLB mode lazier

Takuya Yamamoto (1):
x86/mm: Fix typo in comment

Thomas Gleixner (12):
x86/mm/init32: Mark text and rodata RO in one go
x86/mm/cpa: Split, rename and clean up try_preserve_large_page()
x86/mm/cpa: Rework static_protections()
x86/mm/cpa: Allow range check for static protections
x86/mm/cpa: Add debug mechanism
x86/mm/cpa: Add large page preservation statistics
x86/mm/cpa: Avoid static protection checks on unmap
x86/mm/cpa: Add sanity check for existing mappings
x86/mm/cpa: Optimize same protection check
x86/mm/cpa: Do the range check early
x86/mm/cpa: Avoid the 4k pages check completely
x86/mm: Do not warn about PCI BIOS W+X mappings

Documentation/x86/x86_64/mm.txt | 171 ++++++++++++++++++++++++++++-------------
arch/x86/Kconfig | 8 ++
arch/x86/include/asm/io.h | 3 +-
arch/x86/include/asm/kexec.h | 2 +-
arch/x86/include/asm/page_64_types.h | 15 ++--
arch/x86/include/asm/tlb.h | 21 ++++--
arch/x86/include/asm/tlbflush.h | 33 +++-----
arch/x86/kernel/crash_dump_64.c | 60 ++++++++++-----
arch/x86/kernel/ldt.c | 2 +-
arch/x86/kernel/vm86_32.c | 2 +-
arch/x86/mm/dump_pagetables.c | 35 +++++++--
arch/x86/mm/extable.c | 2 +-
arch/x86/mm/fault.c | 288 +++++++++++++++++++++++++++++++++++++++++++++------------------------
arch/x86/mm/init_32.c | 23 +-----
arch/x86/mm/ioremap.c | 24 ++++--
arch/x86/mm/pageattr.c | 627 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------
arch/x86/mm/tlb.c | 167 ++++++++++++++++++++++++----------------
arch/x86/xen/smp_pv.c | 2 +
drivers/iommu/amd_iommu_init.c | 14 +++-
fs/proc/vmcore.c | 34 +++++++--
include/linux/crash_dump.h | 4 +
include/linux/smp.h | 4 +
kernel/kexec_core.c | 6 ++
kernel/resource.c | 141 ++++++++++++++++------------------
kernel/sched/idle.c | 15 ----
kernel/sched/sched.h | 1 -
kernel/smp.c | 19 +++--
kernel/up.c | 14 +++-
mm/pgtable-generic.c | 1 +
29 files changed, 1118 insertions(+), 620 deletions(-)