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>
This commit is contained in:
parent
5b9b357435
commit
8279194054
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user