From: Wu Fengguang Set ra_expect_bytes and ra_thrash_bytes of default_backing_dev_info to large numbers. Large initial values are better, because - most systems don't have the danger of thrashing - most small files are read in whole - they both increase slowly and drop rapidly Signed-off-by: Wu Fengguang Signed-off-by: Andrew Morton --- mm/readahead.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff -puN mm/readahead.c~readahead-initial-method-guiding-sizes-aggressive-initial-sizes mm/readahead.c --- devel/mm/readahead.c~readahead-initial-method-guiding-sizes-aggressive-initial-sizes 2006-06-09 01:22:46.000000000 -0700 +++ devel-akpm/mm/readahead.c 2006-06-09 01:22:46.000000000 -0700 @@ -30,6 +30,9 @@ * Adaptive read-ahead parameters. */ +/* Default max read-ahead size for the initial method. */ +#define INITIAL_RA_PAGES DIV_ROUND_UP(128*1024, PAGE_CACHE_SIZE) + /* In laptop mode, poll delayed look-ahead on every ## pages read. */ #define LAPTOP_POLL_INTERVAL 16 @@ -123,9 +126,9 @@ EXPORT_SYMBOL(default_unplug_io_fn); struct backing_dev_info default_backing_dev_info = { .ra_pages = MAX_RA_PAGES, - .ra_pages0 = (128*1024) / PAGE_CACHE_SIZE, - .ra_expect_bytes = VM_MIN_READAHEAD*1024, - .ra_thrash_bytes = VM_MIN_READAHEAD*1024, + .ra_pages0 = INITIAL_RA_PAGES, + .ra_expect_bytes = INITIAL_RA_PAGES * PAGE_CACHE_SIZE, + .ra_thrash_bytes = MAX_RA_PAGES * PAGE_CACHE_SIZE, .state = 0, .capabilities = BDI_CAP_MAP_COPY, .unplug_io_fn = default_unplug_io_fn, _