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

Peter Zijlstra
2011-08-08T13:47: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().
>
> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
> ---
> include/linux/sched.h | 7 ++
> mm/memory_hotplug.c | 3 -
> mm/page-writeback.c | 106 +++++++++-------------------------------
> 3 files changed, 32 insertions(+), 84 deletions(-)

No fork() hooks? This way tasks inherit their parent's dirty count on
clone().