linux/mm
Fengguang Wu 46fc3e7b4e readahead: add look-ahead support to __do_page_cache_readahead()
Add look-ahead support to __do_page_cache_readahead().

It works by
	- mark the Nth backwards page with PG_readahead,
	(which instructs the page's first reader to invoke readahead)
	- and only do the marking for newly allocated pages.
	(to prevent blindly doing readahead on already cached pages)

Look-ahead is a technique to achieve I/O pipelining:

While the application is working through a chunk of cached pages, the kernel
reads-ahead the next chunk of pages _before_ time of need.  It effectively
hides low level I/O latencies to high level applications.

Signed-off-by: Fengguang Wu <wfg@mail.ustc.edu.cn>
Cc: Steven Pratt <slpratt@austin.ibm.com>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-19 10:04:43 -07:00
..
allocpercpu.c Slab allocators: Replace explicit zeroing with __GFP_ZERO 2007-07-17 10:23:02 -07:00
backing-dev.c
bootmem.c
bounce.c
fadvise.c
filemap_xip.c mm: fault feedback #2 2007-07-19 10:04:41 -07:00
filemap.c mm: fault feedback #2 2007-07-19 10:04:41 -07:00
filemap.h
fremap.c only allow nonlinear vmas for ram backed filesystems 2007-07-19 10:04:41 -07:00
highmem.c
hugetlb.c mm: fault feedback #2 2007-07-19 10:04:41 -07:00
internal.h
Kconfig CONFIG_BOUNCE to avoid useless inclusion of bounce buffer logic 2007-07-17 10:23:02 -07:00
madvise.c
Makefile CONFIG_BOUNCE to avoid useless inclusion of bounce buffer logic 2007-07-17 10:23:02 -07:00
memory_hotplug.c
memory.c mm: fix clear_page_dirty_for_io vs fault race 2007-07-19 10:04:41 -07:00
mempolicy.c
mempool.c Slab allocators: Replace explicit zeroing with __GFP_ZERO 2007-07-17 10:23:02 -07:00
migrate.c
mincore.c
mlock.c
mmap.c mm: merge populate and nopage into fault (fixes nonlinear) 2007-07-19 10:04:41 -07:00
mmzone.c
mprotect.c
mremap.c
msync.c
nommu.c mm: fault feedback #1 2007-07-19 10:04:41 -07:00
oom_kill.c
page_alloc.c readahead: introduce PG_readahead 2007-07-19 10:04:43 -07:00
page_io.c
page-writeback.c mm: fix clear_page_dirty_for_io vs fault race 2007-07-19 10:04:41 -07:00
pdflush.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
prio_tree.c
quicklist.c
readahead.c readahead: add look-ahead support to __do_page_cache_readahead() 2007-07-19 10:04:43 -07:00
rmap.c mm: merge populate and nopage into fault (fixes nonlinear) 2007-07-19 10:04:41 -07:00
shmem_acl.c
shmem.c mm: fault feedback #2 2007-07-19 10:04:41 -07:00
slab.c kallsyms: make KSYM_NAME_LEN include space for trailing '\0' 2007-07-17 10:23:03 -07:00
slob.c
slub.c SLUB: Fix CONFIG_SLUB_DEBUG use for CONFIG_NUMA 2007-07-17 10:23:02 -07:00
sparse.c
swap_state.c
swap.c
swapfile.c
thrash.c
tiny-shmem.c
truncate.c mm: merge populate and nopage into fault (fixes nonlinear) 2007-07-19 10:04:41 -07:00
util.c add kstrndup 2007-07-18 08:47:39 -07:00
vmalloc.c Allocate and free vmalloc areas 2007-07-18 08:47:41 -07:00
vmscan.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
vmstat.c