Re: [PATCH 4/5] writeback: per task dirty rate limit

Peter Zijlstra
2011-08-09T18:35:34Z

On Sat, 2011-08-06 at 16:44 +0800, Wu Fengguang wrote:
>
> Add two fields to task_struct.
>
> 1) account dirtied pages in the individual tasks, for accuracy
> 2) per-task balance_dirty_pages() call intervals, for flexibility
>
> The balance_dirty_pages() call interval (ie. nr_dirtied_pause) will
> scale near-sqrt to the safety gap between dirty pages and threshold.
>
> XXX: The main problem of per-task nr_dirtied is, if 10k tasks start
> dirtying pages at exactly the same time, each task will be assigned a
> large initial nr_dirtied_pause, so that the dirty threshold will be
> exceeded long before each task reached its nr_dirtied_pause and hence
> call balance_dirty_pages().

Right, so why remove the per-cpu threshold? you can keep that as a bound
on the number of out-standing dirty pages.

Loosing that bound is actually a bad thing (TM), since you could have
configured a tight dirty limit and lock up your machine this way.