diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-04-30 03:54:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 11:29:50 -0400 |
commit | 189d3c4a94ef19fca2a71a6a336e9fda900e25e7 (patch) | |
tree | 75c0de871fe9922885a2fa073f15806d829342fa /include | |
parent | b6f2fcbcfca9db2bd7aa24940224fcd3bbdbb8aa (diff) |
mm: bdi: allow setting a minimum for the bdi dirty limit
Under normal circumstances each device is given a part of the total write-back
cache that relates to its current avg writeout speed in relation to the other
devices.
min_ratio - allows one to assign a minimum portion of the write-back cache to
a particular device. This is useful in situations where you might want to
provide a minimum QoS. (One request for this feature came from flash based
storage people who wanted to avoid writing out at all costs - they of course
needed some pdflush hacks as well)
max_ratio - allows one to assign a maximum portion of the dirty limit to a
particular device. This is useful in situations where you want to avoid one
device taking all or most of the write-back cache. Eg. an NFS mount that is
prone to get stuck, or a FUSE mount which you don't trust to play fair.
Add "min_ratio" to /sys/class/bdi. This indicates the minimum percentage of
the global dirty threshold allocated to this bdi.
[mszeredi@suse.cz]
- fix parsing in min_ratio_store()
- document new sysfs attribute
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/backing-dev.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 6d513666d45c..9a8965518d1d 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
@@ -51,6 +51,8 @@ struct backing_dev_info { | |||
51 | struct prop_local_percpu completions; | 51 | struct prop_local_percpu completions; |
52 | int dirty_exceeded; | 52 | int dirty_exceeded; |
53 | 53 | ||
54 | unsigned int min_ratio; | ||
55 | |||
54 | struct device *dev; | 56 | struct device *dev; |
55 | }; | 57 | }; |
56 | 58 | ||
@@ -137,6 +139,8 @@ static inline unsigned long bdi_stat_error(struct backing_dev_info *bdi) | |||
137 | #endif | 139 | #endif |
138 | } | 140 | } |
139 | 141 | ||
142 | int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio); | ||
143 | |||
140 | /* | 144 | /* |
141 | * Flags in backing_dev_info::capability | 145 | * Flags in backing_dev_info::capability |
142 | * - The first two flags control whether dirty pages will contribute to the | 146 | * - The first two flags control whether dirty pages will contribute to the |