kernel_optimize_test/mm
Johannes Weiner 4917e5d049 mm: more likely reclaim MADV_SEQUENTIAL mappings
File pages mapped only in sequentially read mappings are perfect reclaim
canditates.

This patch makes these mappings behave like weak references, their pages
will be reclaimed unless they have a strong reference from a normal
mapping as well.

It changes the reclaim and the unmap path where they check if the page has
been referenced.  In both cases, accesses through sequentially read
mappings will be ignored.

Benchmark results from KOSAKI Motohiro:

    http://marc.info/?l=linux-mm&m=122485301925098&w=2

Signed-off-by: Johannes Weiner <hannes@saeurebad.de>
Signed-off-by: Rik van Riel <riel@redhat.com>
Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-06 15:59:00 -08:00
..
allocpercpu.c
backing-dev.c
bootmem.c
bounce.c bounce: don't rely on a zeroed bio_vec list 2008-12-29 08:29:52 +01:00
dmapool.c
fadvise.c
failslab.c SLUB: failslab support 2008-12-29 11:27:46 +02:00
filemap_xip.c
filemap.c mm: write_cache_pages integrity fix 2009-01-06 15:58:59 -08:00
fremap.c
highmem.c
hugetlb.c mm: report the MMU pagesize in /proc/pid/smaps 2009-01-06 15:58:58 -08:00
internal.h
Kconfig
maccess.c
madvise.c
Makefile SLUB: failslab support 2008-12-29 11:27:46 +02:00
memcontrol.c
memory_hotplug.c mm: show node to memory section relationship with symlinks in sysfs 2009-01-06 15:59:00 -08:00
memory.c mm: more likely reclaim MADV_SEQUENTIAL mappings 2009-01-06 15:59:00 -08:00
mempolicy.c
mempool.c
migrate.c mm: move_pages: no need to set pp->page to ZERO_PAGE(0) by default 2009-01-06 15:58:58 -08:00
mincore.c
mlock.c
mm_init.c
mmap.c mm: update my address 2009-01-05 17:44:42 -08:00
mmu_notifier.c
mmzone.c
mprotect.c mm: cleanup: remove #ifdef CONFIG_MIGRATION 2009-01-06 15:59:00 -08:00
mremap.c mm: update my address 2009-01-05 17:44:42 -08:00
msync.c add a vfs_fsync helper 2009-01-05 11:54:28 -05:00
nommu.c inode->i_op is never NULL 2009-01-05 11:54:28 -05:00
oom_kill.c oom: print triggering task's cpuset and mems allowed 2009-01-06 15:58:59 -08:00
page_alloc.c mm: print out memmap number only if it is not zero 2009-01-06 15:59:00 -08:00
page_cgroup.c
page_io.c
page_isolation.c
page-writeback.c mm: write_cache_pages more terminate quickly 2009-01-06 15:59:00 -08:00
pagewalk.c
pdflush.c cpumask: convert mm/ 2009-01-01 10:12:29 +10:30
prio_tree.c
quicklist.c
readahead.c
rmap.c mm: more likely reclaim MADV_SEQUENTIAL mappings 2009-01-06 15:59:00 -08:00
shmem_acl.c
shmem.c mm: don't mark_page_accessed in shmem_fault 2009-01-06 15:58:58 -08:00
slab.c cpumask: convert mm/ 2009-01-01 10:12:29 +10:30
slob.c
slub.c cpumask: convert mm/ 2009-01-01 10:12:29 +10:30
sparse-vmemmap.c
sparse.c
swap_state.c
swap.c mm: get rid of pagevec_release_nonlru() 2009-01-06 15:59:00 -08:00
swapfile.c
thrash.c
tiny-shmem.c
truncate.c
util.c
vmalloc.c vmalloc.c: fix flushing in vmap_page_range() 2009-01-04 13:33:20 -08:00
vmscan.c cpumask: convert mm/ 2009-01-01 10:12:29 +10:30
vmstat.c cpumask: convert mm/ 2009-01-01 10:12:29 +10:30