Re: [RFC][PATCH 7/7] writeback: balance_dirty_pages() shall writemore than dirtied pages

From: Peter Zijlstra
Date: Thu Sep 10 2009 - 11:54:48 EST


On Thu, 2009-09-10 at 23:41 +0800, Wu Fengguang wrote:
> > > So btrfs_file_write() explicitly calls
> > > balance_dirty_pages_ratelimited_nr() to get throttled.
> >
> > Right, so what is wrong with than, and how does this patch fix that?
> >
> > [ the only thing you have to be careful with is that you don't
> > excessively grow the error bound on the dirty limit ]
>
> Then we could form a loop:
>
> btrfs_file_write(): dirty 1024 pages
> balance_dirty_pages(): write up to 12 pages (= ratelimit_pages * 1.5)
>
> in which the writeback rate cannot keep up with dirty rate,
> and the dirty pages go all the way beyond dirty_thresh.

Ah, ok so this is to keep the error bound on the dirty limit bounded,
because we can break out of balance_dirty_pages() early, the /* We've
done our duty */ break.

Which unbalances the duty vs the dirty ratio.

I figure that with the task dirty limit stuff we could maybe try to get
rid of this break.. worth a try.

> Sorry for writing such a vague changelog!

np, as long as we get there :-)

Change makes sense now, thanks!

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/