Re: regression in page writeback

Wu Fengguang
2009-09-22T08:24:37Z

On Tue, Sep 22, 2009 at 04:09:25PM +0800, Peter Zijlstra wrote:
> On Tue, 2009-09-22 at 16:05 +0800, Wu Fengguang wrote:
> >
> > I'm not sure how this patch stopped the "overshooting" behavior.
> > Maybe it managed to not start the background pdflush, or the started
> > pdflush thread exited because it found writeback is in progress by
> > someone else?
> >
> > - if (bdi_nr_reclaimable) {
> > + if (bdi_nr_reclaimable > bdi_thresh) {
>
> The idea is that we shouldn't move more pages from dirty -> writeback
> when there's not actually that much dirty left.

IMHO this makes little sense given that pdflush will move all dirty
pages anyway. pdflush should already be started to do background
writeback before the process is throttled, and it is designed to sync
all current dirty pages as quick as possible and as much as possible.

> Now, I'm not sure about the > bdi_thresh part, I've suggested to maybe
> use bdi_thresh/2 a few times, but it generally didn't seem to make much
> of a difference.

One possible difference is, the process may end up waiting longer time
in order to sync write_chunk pages and quit the throttle. This could
hurt the responsiveness of the throttled process.

Thanks,
Fengguang