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

From: Ingo Molnar
Date: Mon Jul 03 2017 - 05:23:03 EST


Linus,

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: 8781fb7e9749da424e01daacd14834b674658c63 x86/mm: Delete a big outdated comment about TLB flushing

The main changes in this cycle were:

- Continued work to add support for 5-level paging provided by future Intel CPUs.
In particular we switch the x86 GUP code to the generic implementation.
(Kirill A. Shutemov)

- Continued work to add PCID CPU support to native kernels as well. In this round
most of the focus is on reworking/refreshing the TLB flush infrastructure for
the upcoming PCID changes. (Andy Lutomirski)


out-of-topic modifications in x86-mm-for-linus:
-------------------------------------------------
arch/arm/Kconfig # e585513b76f7: x86/mm/gup: Switch GUP to th
arch/arm64/Kconfig # e585513b76f7: x86/mm/gup: Switch GUP to th
arch/powerpc/Kconfig # e585513b76f7: x86/mm/gup: Switch GUP to th
include/linux/mm_types_task.h # e73ad5ff2f76: mm, x86/mm: Make the batched
include/linux/vm_event_item.h # 5dd0b16cdaff: mm/vmstat: Make NR_TLB_REMOT
mm/Kconfig # e585513b76f7: x86/mm/gup: Switch GUP to th
mm/gup.c # e585513b76f7: x86/mm/gup: Switch GUP to th
mm/rmap.c # e73ad5ff2f76: mm, x86/mm: Make the batched

Thanks,

Ingo

------------------>
Andy Lutomirski (17):
x86/mm: Reimplement flush_tlb_page() using flush_tlb_mm_range()
x86/mm: Reduce indentation in flush_tlb_func()
mm, x86/mm: Make the batched unmap TLB flush API more generic
x86/mm: Pass flush_tlb_info to flush_tlb_others() etc
x86/mm: Change the leave_mm() condition for local TLB flushes
x86/mm: Refactor flush_tlb_mm_range() to merge local and remote cases
x86/mm: Use new merged flush logic in arch_tlbbatch_flush()
x86/mm: Remove the UP asm/tlbflush.h code, always use the (formerly) SMP code
x86/mm: Rework lazy TLB to track the actual loaded mm
x86/mm: Be more consistent wrt PAGE_SHIFT vs PAGE_SIZE in tlb flush code
x86/mm, KVM: Teach KVM's VMX code that CR3 isn't a constant
mm/vmstat: Make NR_TLB_REMOTE_FLUSH_RECEIVED available even on UP
x86/mm: Split read_cr3() into read_cr3_pa() and __read_cr3()
x86/ldt: Simplify the LDT switching logic
x86/mm: Remove reset_lazy_tlbstate()
x86/mm: Don't reenter flush_tlb_func_common()
x86/mm: Delete a big outdated comment about TLB flushing

Borislav Petkov (1):
x86/ldt: Rename ldt_struct::size to ::nr_entries

Kirill A. Shutemov (15):
x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation
x86/asm: Fix comment in return_from_SYSCALL_64()
x86/boot/efi: Cleanup initialization of GDT entries
x86/boot/efi: Fix __KERNEL_CS definition of GDT entry on 64-bit configurations
x86/boot/efi: Define __KERNEL32_CS GDT on 64-bit configurations
x86/boot/compressed: Enable 5-level paging during decompression stage
x86/boot/64: Rewrite startup_64() in C
x86/boot/64: Rename init_level4_pgt and early_level4_pgt
x86/boot/64: Add support of additional page table level during early boot
x86/mm: Add sync_global_pgds() for configuration with 5-level paging
x86/mm: Make kernel_physical_mapping_init() support 5-level paging
x86/mm: Add support for 5-level paging for KASLR
x86/boot/64: Put __startup_64() into .head.text
x86/ftrace: Exclude functions in head64.c from function-tracing
x86/KASLR: Fix detection 32/64 bit bootloaders for 5-level paging

Michal Hocko (1):
x86/mmap, ASLR: Do not treat unlimited-stack tasks as legacy mmap


arch/arm/Kconfig | 2 +-
arch/arm64/Kconfig | 2 +-
arch/powerpc/Kconfig | 2 +-
arch/x86/Kconfig | 5 +-
arch/x86/boot/compressed/eboot.c | 73 ++--
arch/x86/boot/compressed/head_64.S | 86 ++++-
arch/x86/boot/compressed/pagetable.c | 18 +-
arch/x86/entry/entry_64.S | 3 +-
arch/x86/events/core.c | 5 +-
arch/x86/include/asm/efi.h | 2 +-
arch/x86/include/asm/hardirq.h | 2 +-
arch/x86/include/asm/mmu.h | 6 -
arch/x86/include/asm/mmu_context.h | 63 +++-
arch/x86/include/asm/paravirt.h | 8 +-
arch/x86/include/asm/paravirt_types.h | 5 +-
arch/x86/include/asm/pgtable-3level.h | 47 +++
arch/x86/include/asm/pgtable.h | 55 ++-
arch/x86/include/asm/pgtable_64.h | 22 +-
arch/x86/include/asm/processor-flags.h | 36 ++
arch/x86/include/asm/processor.h | 8 +
arch/x86/include/asm/special_insns.h | 10 +-
arch/x86/include/asm/tlbbatch.h | 14 +
arch/x86/include/asm/tlbflush.h | 114 ++-----
arch/x86/include/asm/uv/uv.h | 11 +-
arch/x86/include/uapi/asm/processor-flags.h | 2 +
arch/x86/kernel/Makefile | 1 +
arch/x86/kernel/espfix_64.c | 2 +-
arch/x86/kernel/head64.c | 145 +++++++-
arch/x86/kernel/head_64.S | 131 ++------
arch/x86/kernel/ldt.c | 56 ++--
arch/x86/kernel/machine_kexec_64.c | 2 +-
arch/x86/kernel/paravirt.c | 2 +-
arch/x86/kernel/process_32.c | 2 +-
arch/x86/kernel/process_64.c | 4 +-
arch/x86/kernel/smpboot.c | 1 -
arch/x86/kernel/step.c | 2 +-
arch/x86/kvm/vmx.c | 21 +-
arch/x86/math-emu/fpu_system.h | 2 +-
arch/x86/mm/Makefile | 2 +-
arch/x86/mm/dump_pagetables.c | 2 +-
arch/x86/mm/fault.c | 10 +-
arch/x86/mm/gup.c | 496 ----------------------------
arch/x86/mm/init.c | 4 +-
arch/x86/mm/init_64.c | 108 +++++-
arch/x86/mm/ioremap.c | 2 +-
arch/x86/mm/kasan_init_64.c | 12 +-
arch/x86/mm/kaslr.c | 81 +++--
arch/x86/mm/mmap.c | 3 -
arch/x86/mm/tlb.c | 458 +++++++++++--------------
arch/x86/platform/efi/efi_64.c | 4 +-
arch/x86/platform/olpc/olpc-xo1-pm.c | 2 +-
arch/x86/platform/uv/tlb_uv.c | 10 +-
arch/x86/power/cpu.c | 2 +-
arch/x86/power/hibernate_64.c | 3 +-
arch/x86/realmode/init.c | 2 +-
arch/x86/xen/mmu_pv.c | 83 +++--
arch/x86/xen/xen-pvh.S | 2 +-
include/linux/mm_types_task.h | 15 +-
include/linux/vm_event_item.h | 2 -
mm/Kconfig | 2 +-
mm/gup.c | 10 +-
mm/rmap.c | 16 +-
62 files changed, 1083 insertions(+), 1220 deletions(-)
create mode 100644 arch/x86/include/asm/tlbbatch.h
delete mode 100644 arch/x86/mm/gup.c

[ ... diff skipped due to size ... ]