Re: [PATCH 5/5] writeback: IO-less balance_dirty_pages()

Wu Fengguang
2011-08-23T03:53:46Z

> > Because task_ratelimit_0 is initial value to begin with and we will
> > keep on coming with new value every 200ms, we should be able to write
> > above as follows.
> >
> > write_bw
> > bdi->dirty_ratelimit_n = bdi->dirty_ratelimit_n-1 * -------- (8)
> > dirty_bw
> >
> > Effectively we start with an initial value of task_ratelimit_0 and
> > then keep on updating it based on rate change feedback every 200ms.

Ah sorry, based on the reply to Peter, there is no inherent dependency
between balanced_rate_n and balanced_rate_(n-1). bdi->dirty_ratelimit does
track balanced_rate in small steps, and hence will have some relationship
with its previous value other than equation (8).

So, although you may conduct equation (8) for balanced_rate, we'd
better not understand things in that way. Keep this fundamental
formula in mind and don't try to complicate it:

balanced_rate = task_ratelimit_200ms * write_bw / dirty_rate

Thanks,
Fengguang