Re: [PATCH 0/6] buffered write IO controller in balance_dirty_pages()

From: Fengguang Wu
Date: Wed Mar 28 2012 - 18:40:45 EST


Hi Vivek,

On Wed, Mar 28, 2012 at 05:10:18PM -0400, Vivek Goyal wrote:
> On Wed, Mar 28, 2012 at 08:13:08PM +0800, Fengguang Wu wrote:
> >
> > Here is one possible solution to "buffered write IO controller", based on Linux
> > v3.3
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux.git buffered-write-io-controller
> >
> > Features:
> > - support blkio.weight
>
> So this does proportional write bandwidth division on bdi for buffered
> writes?

Right. That is done in patch 3, costing only 3 lines in balance_dirty_pages().

> > - support blkio.throttle.buffered_write_bps
>
> This is absolute limit systemwide or per bdi?

It's per-blkcg absolute limit. It can be extended to per-blkcg-per-bdi
limits w/o changing the basic algorithms. We only need to change interface and
vectorize the variables:
struct percpu_counter nr_dirtied;
unsigned long bw_time_stamp;
unsigned long dirtied_stamp;
unsigned long dirty_ratelimit;
unsigned long long buffered_write_bps;
and add a "bdi" parameter to relevant functions.

> [..]
> > The test results included in the last patch look pretty good in despite of the
> > simple implementation.
> >
> > [PATCH 1/6] blk-cgroup: move blk-cgroup.h in include/linux/blk-cgroup.h
> > [PATCH 2/6] blk-cgroup: account dirtied pages
> > [PATCH 3/6] blk-cgroup: buffered write IO controller - bandwidth weight
> > [PATCH 4/6] blk-cgroup: buffered write IO controller - bandwidth limit
> > [PATCH 5/6] blk-cgroup: buffered write IO controller - bandwidth limit interface
> > [PATCH 6/6] blk-cgroup: buffered write IO controller - debug trace
> >
>
> Hi Fengguang,
>
> Only patch 0 and patch 4 have shown up in my mail box. Same seems to be
> the case for lkml. I am wondering what happened to rest of the patches.

Sorry I shut down my laptop before all emails are sent out.

> Will understand the patches better once I have the full set.

OK, thanks!

Fengguang
--
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/