diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2011-12-03 22:26:01 -0500 |
---|---|---|
committer | Wu Fengguang <fengguang.wu@intel.com> | 2011-12-18 01:20:31 -0500 |
commit | 82791940545be38810dfd5e03ee701e749f04aab (patch) | |
tree | 427e4b1f535dfa483de6b71d1f59c13fd07a0ff9 /mm | |
parent | 5b9b357435a51ff14835c06d8b00765a4c68f313 (diff) |
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 <jack@suse.cz>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/page-writeback.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 422cf4edab47..936dc7b61dc6 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c | |||
@@ -1160,7 +1160,7 @@ static void balance_dirty_pages(struct address_space *mapping, | |||
1160 | bdi_stat(bdi, BDI_WRITEBACK); | 1160 | bdi_stat(bdi, BDI_WRITEBACK); |
1161 | } | 1161 | } |
1162 | 1162 | ||
1163 | dirty_exceeded = (bdi_dirty > bdi_thresh) || | 1163 | dirty_exceeded = (bdi_dirty > bdi_thresh) && |
1164 | (nr_dirty > dirty_thresh); | 1164 | (nr_dirty > dirty_thresh); |
1165 | if (dirty_exceeded && !bdi->dirty_exceeded) | 1165 | if (dirty_exceeded && !bdi->dirty_exceeded) |
1166 | bdi->dirty_exceeded = 1; | 1166 | bdi->dirty_exceeded = 1; |