OpenCloudOS-Kernel/arch/loongarch/include/asm
Peter Zijlstra 1e9fdf21a4 mmu_gather: Remove per arch tlb_{start,end}_vma()
Scattered across the archs are 3 basic forms of tlb_{start,end}_vma().
Provide two new MMU_GATHER_knobs to enumerate them and remove the per
arch tlb_{start,end}_vma() implementations.

 - MMU_GATHER_NO_FLUSH_CACHE indicates the arch has flush_cache_range()
   but does *NOT* want to call it for each VMA.

 - MMU_GATHER_MERGE_VMAS indicates the arch wants to merge the
   invalidate across multiple VMAs if possible.

With these it is possible to capture the three forms:

  1) empty stubs;
     select MMU_GATHER_NO_FLUSH_CACHE and MMU_GATHER_MERGE_VMAS

  2) start: flush_cache_range(), end: empty;
     select MMU_GATHER_MERGE_VMAS

  3) start: flush_cache_range(), end: flush_tlb_range();
     default

Obviously, if the architecture does not have flush_cache_range() then
it also doesn't need to select MMU_GATHER_NO_FLUSH_CACHE.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Will Deacon <will@kernel.org>
Cc: David Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-07-21 10:50:13 -07:00
..
vdso LoongArch: Add VDSO and VSYSCALL support 2022-06-03 20:09:28 +08:00
Kbuild
acenv.h LoongArch: Add boot and setup routines 2022-06-03 20:09:28 +08:00
acpi.h LoongArch: Add boot and setup routines 2022-06-03 20:09:28 +08:00
addrspace.h LoongArch: Add CPU definition headers 2022-06-03 20:09:28 +08:00
asm-offsets.h LoongArch: Add misc common routines 2022-06-03 20:09:28 +08:00
asm-prototypes.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
asm.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
asmmacro.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
atomic.h LoongArch: Add multi-processor (SMP) support 2022-06-03 20:09:29 +08:00
barrier.h LoongArch: Add multi-processor (SMP) support 2022-06-03 20:09:29 +08:00
bitops.h LoongArch: Add atomic/locking headers 2022-06-03 20:09:28 +08:00
bitrev.h LoongArch: Add atomic/locking headers 2022-06-03 20:09:28 +08:00
bootinfo.h LoongArch: Add Non-Uniform Memory Access (NUMA) support 2022-06-03 20:09:29 +08:00
branch.h LoongArch: Make compute_return_era() return void 2022-06-25 18:06:07 +08:00
bug.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
cache.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
cacheflush.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
cacheops.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
clocksource.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
cmpxchg.h LoongArch: Add multi-processor (SMP) support 2022-06-03 20:09:29 +08:00
compiler.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
cpu-features.h LoongArch: Add CPU definition headers 2022-06-03 20:09:28 +08:00
cpu-info.h LoongArch: Add CPU definition headers 2022-06-03 20:09:28 +08:00
cpu.h LoongArch: Add CPU definition headers 2022-06-03 20:09:28 +08:00
cpufeature.h LoongArch: Add ELF and module support 2022-06-03 20:09:28 +08:00
delay.h LoongArch: Add some library functions 2022-06-03 20:09:28 +08:00
dma-direct.h LoongArch: Add Non-Uniform Memory Access (NUMA) support 2022-06-03 20:09:29 +08:00
dmi.h LoongArch: Add boot and setup routines 2022-06-03 20:09:28 +08:00
efi.h LoongArch: Add boot and setup routines 2022-06-03 20:09:28 +08:00
elf.h LoongArch: Add ELF and module support 2022-06-03 20:09:28 +08:00
entry-common.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
exec.h LoongArch: Add ELF and module support 2022-06-03 20:09:28 +08:00
fb.h LoongArch: Add misc common routines 2022-06-03 20:09:28 +08:00
fixmap.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
fpregdef.h LoongArch: Remove obsolete mentions of vcsr 2022-07-07 17:41:01 +08:00
fpu.h LoongArch: Add process management 2022-06-03 20:09:28 +08:00
futex.h LoongArch: Add multi-processor (SMP) support 2022-06-03 20:09:29 +08:00
hardirq.h LoongArch: Fix the !CONFIG_SMP build 2022-06-08 11:00:40 +08:00
hugetlb.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
hw_irq.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
idle.h LoongArch: Add process management 2022-06-03 20:09:28 +08:00
inst.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
io.h LoongArch: Add misc common routines 2022-06-03 20:09:28 +08:00
irq.h LoongArch: Add multi-processor (SMP) support 2022-06-03 20:09:29 +08:00
irq_regs.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
irqflags.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
kdebug.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
linkage.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
local.h LoongArch: Add atomic/locking headers 2022-06-03 20:09:28 +08:00
loongarch.h LoongArch: Add CPU definition headers 2022-06-03 20:09:28 +08:00
loongson.h LoongArch: Add CPU definition headers 2022-06-03 20:09:28 +08:00
mmu.h LoongArch: Add process management 2022-06-03 20:09:28 +08:00
mmu_context.h LoongArch: Add process management 2022-06-03 20:09:28 +08:00
mmzone.h LoongArch: Add Non-Uniform Memory Access (NUMA) support 2022-06-03 20:09:29 +08:00
module.h LoongArch: Add ELF and module support 2022-06-03 20:09:28 +08:00
module.lds.h LoongArch: Add ELF and module support 2022-06-03 20:09:28 +08:00
numa.h LoongArch: Add Non-Uniform Memory Access (NUMA) support 2022-06-03 20:09:29 +08:00
page.h LoongArch: Fix build errors for tinyconfig 2022-07-07 17:41:01 +08:00
percpu.h LoongArch: Fix the !CONFIG_SMP build 2022-06-08 11:00:40 +08:00
perf_event.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
pgalloc.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
pgtable-bits.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
pgtable.h LoongArch: Fix the !THP build 2022-06-25 18:05:58 +08:00
prefetch.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
processor.h LoongArch: Remove obsolete mentions of vcsr 2022-07-07 17:41:01 +08:00
ptrace.h LoongArch: Add process management 2022-06-03 20:09:28 +08:00
reboot.h LoongArch: Add boot and setup routines 2022-06-03 20:09:28 +08:00
regdef.h LoongArch: Add CPU definition headers 2022-06-03 20:09:28 +08:00
seccomp.h LoongArch: Add system call support 2022-06-03 20:09:28 +08:00
serial.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
setup.h LoongArch: Add boot and setup routines 2022-06-03 20:09:28 +08:00
shmparam.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
smp.h LoongArch: Fix the !CONFIG_SMP build 2022-06-08 11:00:40 +08:00
sparsemem.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00
stackframe.h LoongArch: Add multi-processor (SMP) support 2022-06-03 20:09:29 +08:00
stacktrace.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
string.h LoongArch: Add some library functions 2022-06-03 20:09:28 +08:00
switch_to.h LoongArch: Add process management 2022-06-03 20:09:28 +08:00
syscall.h LoongArch: Add system call support 2022-06-03 20:09:28 +08:00
thread_info.h LoongArch: Add process management 2022-06-03 20:09:28 +08:00
time.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
timex.h LoongArch: Remove MIPS comment about cycle counter 2022-06-08 11:00:40 +08:00
tlb.h mmu_gather: Remove per arch tlb_{start,end}_vma() 2022-07-21 10:50:13 -07:00
tlbflush.h LoongArch: Add multi-processor (SMP) support 2022-06-03 20:09:29 +08:00
topology.h LoongArch: Add Non-Uniform Memory Access (NUMA) support 2022-06-03 20:09:29 +08:00
types.h LoongArch: Add other common headers 2022-06-03 20:09:28 +08:00
uaccess.h LoongArch: Add system call support 2022-06-03 20:09:28 +08:00
unistd.h LoongArch: Add system call support 2022-06-03 20:09:28 +08:00
vdso.h LoongArch: Add VDSO and VSYSCALL support 2022-06-03 20:09:28 +08:00
vermagic.h LoongArch: Add ELF and module support 2022-06-03 20:09:28 +08:00
vmalloc.h LoongArch: Add memory management 2022-06-03 20:09:28 +08:00