Commit f615bfca authored by Fengguang Wu's avatar Fengguang Wu Committed by Linus Torvalds

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: default avatarFengguang 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 46fc3e7b
...@@ -21,8 +21,16 @@ void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page) ...@@ -21,8 +21,16 @@ void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page)
} }
EXPORT_SYMBOL(default_unplug_io_fn); EXPORT_SYMBOL(default_unplug_io_fn);
/*
* Convienent macros for min/max read-ahead pages.
* Note that MAX_RA_PAGES is rounded down, while MIN_RA_PAGES is rounded up.
* The latter is necessary for systems with large page size(i.e. 64k).
*/
#define MAX_RA_PAGES (VM_MAX_READAHEAD*1024 / PAGE_CACHE_SIZE)
#define MIN_RA_PAGES DIV_ROUND_UP(VM_MIN_READAHEAD*1024, PAGE_CACHE_SIZE)
struct backing_dev_info default_backing_dev_info = { struct backing_dev_info default_backing_dev_info = {
.ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE, .ra_pages = MAX_RA_PAGES,
.state = 0, .state = 0,
.capabilities = BDI_CAP_MAP_COPY, .capabilities = BDI_CAP_MAP_COPY,
.unplug_io_fn = default_unplug_io_fn, .unplug_io_fn = default_unplug_io_fn,
...@@ -51,7 +59,7 @@ static inline unsigned long get_max_readahead(struct file_ra_state *ra) ...@@ -51,7 +59,7 @@ static inline unsigned long get_max_readahead(struct file_ra_state *ra)
static inline unsigned long get_min_readahead(struct file_ra_state *ra) static inline unsigned long get_min_readahead(struct file_ra_state *ra)
{ {
return (VM_MIN_READAHEAD * 1024) / PAGE_CACHE_SIZE; return MIN_RA_PAGES;
} }
static inline void reset_ahead_window(struct file_ra_state *ra) static inline void reset_ahead_window(struct file_ra_state *ra)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment