Messages in this thread | | | Date | Mon, 6 May 2019 08:57:46 +0200 | From | Ingo Molnar <> | Subject | [GIT PULL] core/mm changes for v5.2: Unify TLB flushing across architectures |
| |
Linus,
Please pull the latest core-mm-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-mm-for-linus
# HEAD: f6c6010a07734103a31faa0cc977641b358c45b0 mm/resource: Use resource_overlaps() to simplify region_intersects()
This tree contains the generic mmu_gather feature from Peter Zijlstra, which is an all-arch unification of TLB flushing APIs, via the following (broad) steps:
- enhance the <asm-generic/tlb.h> APIs to cover more arch details
- convert most TLB flushing arch implementations to the generic <asm-generic/tlb.h> APIs.
- remove leftovers of per arch implementations
After this series every single architecture makes use of the unified TLB flushing APIs.
Thanks,
Ingo
------------------> Martin Schwidefsky (2): asm-generic/tlb: Introduce CONFIG_HAVE_MMU_GATHER_NO_GATHER=y s390/tlb: Convert to generic mmu_gather
Peter Zijlstra (17): asm-generic/tlb: Provide a comment asm-generic/tlb, arch: Provide CONFIG_HAVE_MMU_GATHER_PAGE_SIZE asm-generic/tlb, arch: Provide generic VIPT cache flush asm-generic/tlb, arch: Provide generic tlb_flush() based on flush_tlb_range() asm-generic/tlb: Provide generic tlb_flush() based on flush_tlb_mm() asm-generic/tlb, ia64: Conditionally provide tlb_migrate_finish() asm-generic/tlb, arch: Invert CONFIG_HAVE_RCU_TABLE_INVALIDATE arm/tlb: Convert to generic mmu_gather ia64/tlb: Convert to generic mmu_gather sh/tlb: Convert SH to generic mmu_gather um/tlb: Convert to generic mmu_gather arch/tlb: Clean up simple architectures asm-generic/tlb: Remove arch_tlb*_mmu() asm-generic/tlb: Remove CONFIG_HAVE_GENERIC_MMU_GATHER asm-generic/tlb: Remove tlb_flush_mmu_free() asm-generic/tlb: Remove tlb_table_flush() ia64/tlb: Eradicate tlb_migrate_finish() callback
Wei Yang (1): mm/resource: Use resource_overlaps() to simplify region_intersects()
Documentation/core-api/cachetlb.rst | 10 -- arch/Kconfig | 8 +- arch/alpha/Kconfig | 1 + arch/alpha/include/asm/tlb.h | 6 - arch/arc/include/asm/tlb.h | 32 ---- arch/arm/include/asm/tlb.h | 255 ++----------------------------- arch/arm64/Kconfig | 1 - arch/arm64/include/asm/tlb.h | 1 + arch/c6x/Kconfig | 1 + arch/c6x/include/asm/tlb.h | 2 - arch/h8300/include/asm/tlb.h | 2 - arch/hexagon/include/asm/tlb.h | 12 -- arch/ia64/include/asm/machvec.h | 13 -- arch/ia64/include/asm/machvec_sn2.h | 2 - arch/ia64/include/asm/tlb.h | 259 +------------------------------- arch/ia64/include/asm/tlbflush.h | 25 ++++ arch/ia64/mm/tlb.c | 23 ++- arch/ia64/sn/kernel/sn2/sn2_smp.c | 7 - arch/m68k/Kconfig | 1 + arch/m68k/include/asm/tlb.h | 14 -- arch/microblaze/Kconfig | 1 + arch/microblaze/include/asm/tlb.h | 9 -- arch/mips/include/asm/tlb.h | 17 --- arch/nds32/include/asm/tlb.h | 16 -- arch/nds32/include/asm/tlbflush.h | 1 - arch/nios2/Kconfig | 1 + arch/nios2/include/asm/tlb.h | 14 +- arch/openrisc/Kconfig | 1 + arch/openrisc/include/asm/tlb.h | 8 +- arch/parisc/include/asm/tlb.h | 18 --- arch/powerpc/Kconfig | 2 + arch/powerpc/include/asm/tlb.h | 18 +-- arch/riscv/include/asm/tlb.h | 1 + arch/s390/Kconfig | 2 + arch/s390/include/asm/tlb.h | 130 +++++----------- arch/s390/mm/pgalloc.c | 63 +------- arch/sh/include/asm/pgalloc.h | 9 ++ arch/sh/include/asm/tlb.h | 132 +---------------- arch/sparc/Kconfig | 1 + arch/sparc/include/asm/tlb_32.h | 18 --- arch/um/include/asm/tlb.h | 158 +------------------- arch/unicore32/Kconfig | 1 + arch/unicore32/include/asm/tlb.h | 7 +- arch/x86/Kconfig | 1 - arch/x86/include/asm/tlb.h | 1 + arch/xtensa/include/asm/tlb.h | 26 ---- include/asm-generic/tlb.h | 288 ++++++++++++++++++++++++++++++++---- kernel/iomem.c | 4 +- kernel/resource.c | 11 +- kernel/sched/core.c | 1 - mm/huge_memory.c | 4 +- mm/hugetlb.c | 2 +- mm/madvise.c | 2 +- mm/memory.c | 6 +- mm/mmu_gather.c | 129 ++++++++-------- 55 files changed, 482 insertions(+), 1296 deletions(-)
| |