From 82791940545be38810dfd5e03ee701e749f04aab Mon Sep 17 00:00:00 2001 From: Wu Fengguang Date: Sat, 3 Dec 2011 21:26:01 -0600 Subject: writeback: do strict bdi dirty_exceeded This helps to reduce dirty throttling polls and hence CPU overheads. bdi->dirty_exceeded typically only helps when suddenly starting 100+ dd's on a disk, in which case the dd's may need to poll balance_dirty_pages() earlier than tsk->nr_dirtied_pause. CC: Jan Kara CC: Peter Zijlstra Signed-off-by: Wu Fengguang --- mm/page-writeback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mm/page-writeback.c') diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 422cf4edab4..936dc7b61dc 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -1160,7 +1160,7 @@ static void balance_dirty_pages(struct address_space *mapping, bdi_stat(bdi, BDI_WRITEBACK); } - dirty_exceeded = (bdi_dirty > bdi_thresh) || + dirty_exceeded = (bdi_dirty > bdi_thresh) && (nr_dirty > dirty_thresh); if (dirty_exceeded && !bdi->dirty_exceeded) bdi->dirty_exceeded = 1; -- cgit v1.2.3