The patch titled readahead: min/max sizes has been removed from the -mm tree. Its filename is readahead-min-max-sizes.patch This patch was probably dropped from -mm because it has now been merged into a subsystem tree or into Linus's tree, or because it was folded into its parent patch in the -mm tree. ------------------------------------------------------ Subject: readahead: min/max sizes From: Wu Fengguang <wfg@xxxxxxxxxxxxxxxx> - Enlarge VM_MAX_READAHEAD to 1024 if new read-ahead code is compiled in. This value is no longer tightly coupled with the thrashing problem, therefore constrained by it. The adaptive read-ahead logic merely takes it as an upper bound, and will not stick to it under memory pressure. - Slightly enlarge minimal/initial read-ahead size on big memory systems. Memory bounty systems are less likely to suffer from thrashing on small read-ahead sizes. A bigger initial value helps the ra_size scaling up progress. Signed-off-by: Wu Fengguang <wfg@xxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- include/linux/mm.h | 4 ++++ mm/readahead.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff -puN include/linux/mm.h~readahead-min-max-sizes include/linux/mm.h --- 25/include/linux/mm.h~readahead-min-max-sizes Wed May 24 16:49:30 2006 +++ 25-akpm/include/linux/mm.h Wed May 24 16:49:30 2006 @@ -970,7 +970,11 @@ extern int filemap_populate(struct vm_ar int write_one_page(struct page *page, int wait); /* readahead.c */ +#ifdef CONFIG_ADAPTIVE_READAHEAD +#define VM_MAX_READAHEAD 1024 /* kbytes */ +#else #define VM_MAX_READAHEAD 128 /* kbytes */ +#endif #define VM_MIN_READAHEAD 16 /* kbytes (includes current page) */ #define VM_MAX_CACHE_HIT 256 /* max pages in a row in cache before * turning readahead off */ diff -puN mm/readahead.c~readahead-min-max-sizes mm/readahead.c --- 25/mm/readahead.c~readahead-min-max-sizes Wed May 24 16:49:30 2006 +++ 25-akpm/mm/readahead.c Wed May 24 16:49:30 2006 @@ -803,6 +803,25 @@ out: return nr_pages; } +/* + * ra_min is mainly determined by the size of cache memory. Reasonable? + * + * Table of concrete numbers for 4KB page size: + * inactive + free (MB): 4 8 16 32 64 128 256 512 1024 + * ra_min (KB): 16 16 16 16 20 24 32 48 64 + */ +static inline void get_readahead_bounds(struct file_ra_state *ra, + unsigned long *ra_min, + unsigned long *ra_max) +{ + unsigned long pages; + + pages = max_sane_readahead(PAGES_KB(1024*1024)); + *ra_max = min(min(pages, 0xFFFFUL), ra->ra_pages); + *ra_min = min(min(PAGES_KB(VM_MIN_READAHEAD) + (pages >> 13), + PAGES_KB(128)), *ra_max / 2); +} + #endif /* CONFIG_ADAPTIVE_READAHEAD */ /* _ Patches currently in -mm which might be from wfg@xxxxxxxxxxxxxxxx are readahead-min-max-sizes.patch readahead-state-based-method-aging-accounting.patch readahead-state-based-method-data-structure.patch readahead-state-based-method-routines.patch readahead-state-based-method.patch readahead-context-based-method.patch readahead-initial-method-guiding-sizes.patch readahead-initial-method-thrashing-guard-size.patch readahead-initial-method-expected-read-size.patch readahead-initial-method-user-recommended-size.patch readahead-initial-method.patch readahead-backward-prefetching-method.patch readahead-seeking-reads-method.patch readahead-thrashing-recovery-method.patch readahead-call-scheme.patch readahead-laptop-mode.patch readahead-loop-case.patch readahead-nfsd-case.patch readahead-turn-on-by-default.patch readahead-debug-radix-tree-new-functions.patch readahead-debug-traces-showing-accessed-file-names.patch readahead-debug-traces-showing-read-patterns.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html