linux-stable-rt/arch/arm/include/asm
Aaro Koskinen 7fccfc00c0 [ARM] 5450/1: Flush only the needed range when unmapping a VMA
When unmapping N pages (e.g. shared memory) the amount of TLB flushes
done can be (N*PAGE_SIZE/ZAP_BLOCK_SIZE)*N although it should be N at
maximum. With PREEMPT kernel ZAP_BLOCK_SIZE is 8 pages, so there is a
noticeable performance penalty when unmapping a large VMA and the system
is spending its time in flush_tlb_range().

The problem is that tlb_end_vma() is always flushing the full VMA
range. The subrange that needs to be flushed can be calculated by
tlb_remove_tlb_entry(). This approach was suggested by Hugh Dickins,
and is also used by other arches.

The speed increase is roughly 3x for 8M mappings and for larger mappings
even more.

Signed-off-by: Aaro Koskinen <Aaro.Koskinen@nokia.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-04-15 10:01:02 +01:00
..
hardware
mach
Kbuild
a.out-core.h
a.out.h
assembler.h
atomic.h
auxvec.h
bitops.h
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h
cachetype.h
checksum.h
clkdev.h
cpu-multi32.h
cpu-single.h
cpu.h
cputime.h
cputype.h
current.h
delay.h
device.h
div64.h
dma-mapping.h
dma.h
domain.h
ecard.h
elf.h
emergency-restart.h
errno.h
fb.h
fcntl.h
fiq.h
fixmap.h
flat.h
floppy.h
fpstate.h
ftrace.h
futex.h
glue.h
gpio.h
hardirq.h
highmem.h
hw_irq.h
hwcap.h
ide.h
io.h
ioctl.h
ioctls.h
ipcbuf.h
irq.h
irq_regs.h
irqflags.h
kdebug.h
kexec.h
kgdb.h
kmap_types.h
kprobes.h
leds.h
limits.h
linkage.h
local.h
locks.h
mc146818rtc.h
memory.h
mman.h
mmu.h
mmu_context.h
mmzone.h
module.h
msgbuf.h
mtd-xip.h
mutex.h
nwflash.h
page-nommu.h
page.h
param.h
parport.h
pci.h
percpu.h
pgalloc.h
pgtable-hwdef.h
pgtable-nommu.h
pgtable.h
poll.h
posix_types.h
proc-fns.h
processor.h
procinfo.h
ptrace.h
resource.h
scatterlist.h
sections.h
segment.h
sembuf.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
sizes.h
smp.h
socket.h
sockios.h
sparsemem.h
spinlock.h
spinlock_types.h
stacktrace.h
stat.h
statfs.h
string.h
suspend.h
swab.h
system.h
termbits.h
termios.h
therm.h
thread_info.h
thread_notify.h
timex.h
tlb.h [ARM] 5450/1: Flush only the needed range when unmapping a VMA 2009-04-15 10:01:02 +01:00
tlbflush.h
topology.h
traps.h
types.h
uaccess.h
ucontext.h
unaligned.h
unistd.h
unwind.h
user.h
vfp.h
vfpmacros.h
vga.h
xor.h