aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFengguang Wu <wfg@mail.ustc.edu.cn>2007-07-19 04:47:58 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-19 13:04:43 -0400
commitf615bfca468c9b80ed2d09be5fdbaf470a32c045 (patch)
tree4771fd91ae020efaafbe653ad78ba5e32d56e8a3
parent46fc3e7b4e7233a0ac981ac9084b55217318d04d (diff)
readahead: MIN_RA_PAGES/MAX_RA_PAGES macros
Define two convenient macros for read-ahead: - MAX_RA_PAGES: rounded down counterpart of VM_MAX_READAHEAD - MIN_RA_PAGES: rounded _up_ counterpart of VM_MIN_READAHEAD Note that the rounded up MIN_RA_PAGES will work flawlessly with _large_ page sizes like 64k. 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> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/readahead.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/mm/readahead.c b/mm/readahead.c
index 88ea0f29aac8..7f9bf588c936 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -21,8 +21,16 @@ void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page)
21} 21}
22EXPORT_SYMBOL(default_unplug_io_fn); 22EXPORT_SYMBOL(default_unplug_io_fn);
23 23
24/*
25 * Convienent macros for min/max read-ahead pages.
26 * Note that MAX_RA_PAGES is rounded down, while MIN_RA_PAGES is rounded up.
27 * The latter is necessary for systems with large page size(i.e. 64k).
28 */
29#define MAX_RA_PAGES (VM_MAX_READAHEAD*1024 / PAGE_CACHE_SIZE)
30#define MIN_RA_PAGES DIV_ROUND_UP(VM_MIN_READAHEAD*1024, PAGE_CACHE_SIZE)
31
24struct backing_dev_info default_backing_dev_info = { 32struct backing_dev_info default_backing_dev_info = {
25 .ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE, 33 .ra_pages = MAX_RA_PAGES,
26 .state = 0, 34 .state = 0,
27 .capabilities = BDI_CAP_MAP_COPY, 35 .capabilities = BDI_CAP_MAP_COPY,
28 .unplug_io_fn = default_unplug_io_fn, 36 .unplug_io_fn = default_unplug_io_fn,
@@ -51,7 +59,7 @@ static inline unsigned long get_max_readahead(struct file_ra_state *ra)
51 59
52static inline unsigned long get_min_readahead(struct file_ra_state *ra) 60static inline unsigned long get_min_readahead(struct file_ra_state *ra)
53{ 61{
54 return (VM_MIN_READAHEAD * 1024) / PAGE_CACHE_SIZE; 62 return MIN_RA_PAGES;
55} 63}
56 64
57static inline void reset_ahead_window(struct file_ra_state *ra) 65static inline void reset_ahead_window(struct file_ra_state *ra)