[PATCH 25/47] writeback: make it easier to break from a dirty exceeded bdi

From: Wu Fengguang
Date: Mon Dec 13 2010 - 01:56:34 EST


The break is designed mainly to help the single task case.

For the 1-dd case, it looks better to lower the break threshold to
125ms data. After all, it's not easy for the dirty pages to drop by
250ms worth of data when you only slept 200ms (note: the max pause time
has been doubled for reducing overheads when there are lots of
concurrent dirtiers).

Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
---
mm/page-writeback.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

--- linux-next.orig/mm/page-writeback.c 2010-12-09 12:19:22.000000000 +0800
+++ linux-next/mm/page-writeback.c 2010-12-09 12:26:56.000000000 +0800
@@ -652,13 +652,13 @@ static void balance_dirty_pages(struct a
* bdi_dirty = nr_dirty
* = (background_thresh + dirty_thresh) / 2
* >> bdi_thresh
- * Then the task could be blocked for a dozen second to flush
- * all the exceeded (bdi_dirty - bdi_thresh) pages. So offer a
- * complementary way to break out of the loop when 250ms worth
+ * Then the task could be blocked for many seconds to flush all
+ * the exceeded (bdi_dirty - bdi_thresh) pages. So offer a
+ * complementary way to break out of the loop when 125ms worth
* of dirty pages have been cleaned during our pause time.
*/
- if (nr_dirty < dirty_thresh &&
- bdi_prev_dirty - bdi_dirty > (long)bdi->write_bandwidth / 4)
+ if (nr_dirty <= dirty_thresh &&
+ bdi_prev_dirty - bdi_dirty > (long)bdi->write_bandwidth / 8)
break;
bdi_prev_dirty = bdi_dirty;



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/