linux/arch/ia64/include/asm
Aneesh Kumar K.V e9d55e1570 mm: change the interface for __tlb_remove_page()
This updates the generic and arch specific implementation to return true
if we need to do a tlb flush.  That means if a __tlb_remove_page
indicate a flush is needed, the page we try to remove need to be tracked
and added again after the flush.  We need to track it because we have
already update the pte to none and we can't just loop back.

This change is done to enable us to do a tlb_flush when we try to flush
a range that consists of different page sizes.  For architectures like
ppc64, we can do a range based tlb flush and we need to track page size
for that.  When we try to remove a huge page, we will force a tlb flush
and starts a new mmu gather.

[aneesh.kumar@linux.vnet.ibm.com: mm-change-the-interface-for-__tlb_remove_page-v3]
  Link: http://lkml.kernel.org/r/1465049193-22197-2-git-send-email-aneesh.kumar@linux.vnet.ibm.com
Link: http://lkml.kernel.org/r/1464860389-29019-2-git-send-email-aneesh.kumar@linux.vnet.ibm.com
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Hugh Dickins <hughd@google.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: David Rientjes <rientjes@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Minchan Kim <minchan.kim@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-07-26 16:19:19 -07:00
..
native ia64: remove paravirt code 2015-06-10 14:26:32 -07:00
sn ia64: Fix misspellings in comments. 2016-04-18 12:45:54 +02:00
uv ia64: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
acenv.h ACPICA: Linux: Add support to exclude <asm/acenv.h> inclusion. 2014-07-23 01:10:44 +02:00
acpi-ext.h
acpi.h ia64: fix up obsolete cpu function usage. 2015-03-05 15:25:04 +10:30
agp.h
asm-offsets.h
asmmacro.h
atomic.h locking/atomic, arch/ia64: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:25 +02:00
barrier.h ia64: define __smp_xxx 2016-01-12 20:46:55 +02:00
bitops.h arch,ia64: Convert smp_mb__*() 2014-04-18 14:20:35 +02:00
bug.h
bugs.h
cache.h
cacheflush.h
checksum.h ipv6: Pass proto to csum_ipv6_magic as __u8 instead of unsigned short 2016-03-13 23:55:13 -04:00
clocksource.h
cpu.h
cputime.h cputime: Generic on-demand virtual cputime accounting 2013-01-27 19:23:27 +01:00
current.h
cyclone.h
delay.h
device.h driver core / ACPI: Move ACPI support to core device and driver types 2012-11-15 00:28:00 +01:00
div64.h
dma-mapping.h dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
dma.h
dmi.h firmware/dmi_scan: generalize for use by other archs 2014-01-23 16:36:57 -08:00
early_ioremap.h ia64: split off early_ioremap() declarations into asm/early_ioremap.h 2016-01-13 10:35:14 -08:00
elf.h default SET_PERSONALITY() in linux/elf.h 2013-02-26 02:46:08 -05:00
emergency-restart.h
esi.h
fb.h
fpswa.h
ftrace.h
futex.h Wrong asm register contraints in the futex implementation 2013-03-19 16:14:53 -07:00
gcc_intrin.h UAPI: (Scripted) Disintegrate arch/ia64/include/asm 2012-10-09 09:47:00 +01:00
hardirq.h
hpsim.h
hugetlb.h mm/hugetlb: remove arch_prepare/release_hugepage from arch headers 2015-06-25 17:00:35 -07:00
hw_irq.h ia64: remove paravirt code 2015-06-10 14:26:32 -07:00
idle.h
intrinsics.h ia64: remove paravirt code 2015-06-10 14:26:32 -07:00
io.h ia64: define ioremap_uc() 2016-03-17 15:09:34 -07:00
iommu.h x86/cpufeature: Remove cpu_has_x2apic 2016-03-31 13:35:08 +02:00
iommu_table.h
iosapic.h ia64: remove paravirt code 2015-06-10 14:26:32 -07:00
irq.h genirq: Make create/destroy_irq() ia64 private 2014-05-16 14:05:21 +02:00
irq_regs.h
irq_remapping.h iommu/vt-d: Refine the interfaces to create IRQ for DMAR unit 2015-04-24 15:36:49 +02:00
irqflags.h [IA64] Fix include dependency in asm/irqflags.h 2013-06-17 13:39:52 -07:00
Kbuild Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2015-10-04 16:31:13 +01:00
kdebug.h
kexec.h
kmap_types.h
kprobes.h
kregs.h
libata-portmap.h
linkage.h consolidate cond_syscall and SYSCALL_ALIAS declarations 2013-03-03 22:55:19 -05:00
local.h
local64.h
machvec.h ia64/xen: Remove Xen support for ia64 2013-12-10 16:11:07 -08:00
machvec_dig.h
machvec_dig_vtd.h
machvec_hpsim.h
machvec_hpzx1.h
machvec_hpzx1_swiotlb.h
machvec_init.h
machvec_sn2.h
machvec_uv.h
mc146818rtc.h
mca.h Fix initialization of CMCI/CMCP interrupts 2013-04-02 09:37:06 -07:00
mca_asm.h
meminit.h ia64/xen: Remove Xen support for ia64 2013-12-10 16:11:07 -08:00
mman.h UAPI: (Scripted) Disintegrate arch/ia64/include/asm 2012-10-09 09:47:00 +01:00
mmu.h
mmu_context.h
mmzone.h
module.h ia64: remove paravirt code 2015-06-10 14:26:32 -07:00
msidef.h
mutex.h locking/mutex: Optimize mutex_trylock() fast-path 2016-06-08 15:17:01 +02:00
nodedata.h
numa.h Fix build error for numa_clear_node() under IA64 2013-04-02 09:39:48 -07:00
page.h libnvdimm, pfn, pmem: allocate memmap array in persistent memory 2016-01-15 17:56:32 -08:00
pal.h
param.h UAPI: (Scripted) Disintegrate arch/ia64/include/asm 2012-10-09 09:47:00 +01:00
parport.h IA64: drivers: remove __dev* attributes. 2013-01-03 15:57:13 -08:00
patch.h
pci.h PCI: Move pci_dma_* helpers to common code 2016-03-07 10:40:02 -06:00
percpu.h percpu: remove PERCPU_ENOUGH_ROOM which is stale definition 2015-11-16 10:50:25 -05:00
perfmon.h UAPI: (Scripted) Disintegrate arch/ia64/include/asm 2012-10-09 09:47:00 +01:00
pgalloc.h ia64: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable.h ia64: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
processor.h sched, mips, ia64: Remove __ARCH_WANT_UNLOCKED_CTXSW 2014-09-24 14:47:05 +02:00
ptrace.h new helper: current_user_stack_pointer() 2012-12-19 18:07:39 -05:00
rwsem.h locking/rwsem: Remove rwsem_atomic_add() and rwsem_atomic_update() 2016-06-08 15:16:59 +02:00
sal.h
sections.h ia64: remove duplicate declarations of __per_cpu_start[] and __per_cpu_end[] 2014-10-14 02:18:28 +02:00
segment.h
serial.h
shmparam.h
siginfo.h UAPI: (Scripted) Disintegrate arch/ia64/include/asm 2012-10-09 09:47:00 +01:00
signal.h consolidate kernel-side struct sigaction declarations 2013-02-03 15:09:22 -05:00
smp.h IA64: drivers: remove __dev* attributes. 2013-01-03 15:57:13 -08:00
sparsemem.h
spinlock.h locking/spinlock, arch: Update and fix spin_unlock_wait() implementations 2016-06-14 11:55:15 +02:00
spinlock_types.h
string.h
swiotlb.h
switch_to.h ia64: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
syscall.h ARCH: AUDIT: implement syscall_get_arch for all arches 2014-09-23 16:20:10 -04:00
termios.h UAPI: (Scripted) Disintegrate arch/ia64/include/asm 2012-10-09 09:47:00 +01:00
thread_info.h Clarify naming of thread info/stack allocators 2016-06-24 15:09:37 -07:00
timex.h
tlb.h mm: change the interface for __tlb_remove_page() 2016-07-26 16:19:19 -07:00
tlbflush.h
topology.h sched/topology: Rename topology_thread_cpumask() to topology_sibling_cpumask() 2015-05-27 15:22:15 +02:00
types.h UAPI: (Scripted) Disintegrate arch/ia64/include/asm 2012-10-09 09:47:00 +01:00
uaccess.h ia64/extable: use generic search and sort routines 2016-03-22 15:36:02 -07:00
unaligned.h
uncached.h
unistd.h [IA64] Enable preadv2 and pwritev2 syscalls for ia64 2016-03-25 14:37:32 -07:00
unwind.h
user.h
ustack.h UAPI: (Scripted) Disintegrate arch/ia64/include/asm 2012-10-09 09:47:00 +01:00
vga.h
xor.h