提交 82791940 编写于 作者: W Wu Fengguang

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: NWu Fengguang <fengguang.wu@intel.com>
上级 5b9b3574
...@@ -1160,7 +1160,7 @@ static void balance_dirty_pages(struct address_space *mapping, ...@@ -1160,7 +1160,7 @@ static void balance_dirty_pages(struct address_space *mapping,
bdi_stat(bdi, BDI_WRITEBACK); bdi_stat(bdi, BDI_WRITEBACK);
} }
dirty_exceeded = (bdi_dirty > bdi_thresh) || dirty_exceeded = (bdi_dirty > bdi_thresh) &&
(nr_dirty > dirty_thresh); (nr_dirty > dirty_thresh);
if (dirty_exceeded && !bdi->dirty_exceeded) if (dirty_exceeded && !bdi->dirty_exceeded)
bdi->dirty_exceeded = 1; bdi->dirty_exceeded = 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册