summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWu Fengguang <fengguang.wu@intel.com>2011-12-03 01:21:51 +0100
committerWu Fengguang <fengguang.wu@intel.com>2011-12-08 03:49:29 +0100
commit82e230a07de3812a5e87a27979f033dad59172e3 (patch)
tree672ecaa3a1cf3585aa941491b2cf77ae38f1d8ff
parentwriteback: permit through good bdi even when global dirty exceeded (diff)
downloadlinux-82e230a07de3812a5e87a27979f033dad59172e3.tar.xz
linux-82e230a07de3812a5e87a27979f033dad59172e3.zip
writeback: set max_pause to lowest value on zero bdi_dirty
Some trace shows lots of bdi_dirty=0 lines where it's actually some small value if w/o the accounting errors in the per-cpu bdi stats. In this case the max pause time should really be set to the smallest (non-zero) value to avoid IO queue underrun and improve throughput. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
-rw-r--r--mm/page-writeback.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 17403e3a7c89..50f08241f981 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -989,8 +989,7 @@ static unsigned long bdi_max_pause(struct backing_dev_info *bdi,
*
* 8 serves as the safety ratio.
*/
- if (bdi_dirty)
- t = min(t, bdi_dirty * HZ / (8 * bw + 1));
+ t = min(t, bdi_dirty * HZ / (8 * bw + 1));
/*
* The pause time will be settled within range (max_pause/4, max_pause).