All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shaohua Li <shaohua.li@intel.com>
To: "Wu, Fengguang" <fengguang.wu@intel.com>
Cc: Richard Kennedy <richard@rsk.demon.co.uk>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"jens.axboe@oracle.com" <jens.axboe@oracle.com>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	Chris Mason <chris.mason@oracle.com>
Subject: Re: regression in page writeback
Date: Tue, 22 Sep 2009 19:41:43 +0800	[thread overview]
Message-ID: <20090922114143.GA6175@sli10-desk.sh.intel.com> (raw)
In-Reply-To: <20090922090501.GA26510@localhost>

On Tue, Sep 22, 2009 at 05:05:01PM +0800, Wu, Fengguang wrote:
> On Tue, Sep 22, 2009 at 04:52:48PM +0800, Richard Kennedy wrote:
> > On Tue, 2009-09-22 at 10:32 +0200, Peter Zijlstra wrote:
> > > On Tue, 2009-09-22 at 16:24 +0800, Wu Fengguang wrote:
> > > > 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.
> > > 
> > > Not so, pdflush (or now the bdi writer thread thingies) should not
> > > deplete all dirty pages but should stop writing once they are below the
> > > background limit.
> > > 
> > > > > 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.
> > > 
> > > Well, that's all because this congestion_wait stuff is borken..
> > > 
> > 
> > The problem occurred as pdflush stopped when the number of dirty pages
> > reached the background threshold but balance_dirty_pages kept moving
> > pages to writeback because the total of dirty + writeback was over the
> > limit. 
> 
> Ah yes it is possible. The pdflush started by balance_dirty_pages()
> does stop at the background threshold (sorry for the confusion!),
> and then balance_dirty_pages() continue to sync pages in _smaller_
> chunk sizes, which should be suboptimal..
This is possible. Without the patch, balance_dirty_pages() can move some pages
to writeback and don't need do congestion_wait(), so the task can continue doing
write. The patch seems to break this.
I tried to set dirty_exceeded only when bdi_nr_reclaimable > bdi_thresh, this helps
a little in my test, but still not reach the best.

  reply	other threads:[~2009-09-22 11:41 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-22  5:49 regression in page writeback Shaohua Li
2009-09-22  6:40 ` Peter Zijlstra
2009-09-22  8:05   ` Wu Fengguang
2009-09-22  8:09     ` Peter Zijlstra
2009-09-22  8:24       ` Wu Fengguang
2009-09-22  8:32         ` Peter Zijlstra
2009-09-22  8:51           ` Wu Fengguang
2009-09-22  8:52           ` Richard Kennedy
2009-09-22  9:05             ` Wu Fengguang
2009-09-22 11:41               ` Shaohua Li [this message]
2009-09-22 15:52           ` Chris Mason
2009-09-23  0:22             ` Wu Fengguang
2009-09-23  0:54               ` Andrew Morton
2009-09-23  1:17                 ` Wu Fengguang
2009-09-23  1:27                   ` Wu Fengguang
2009-09-23  1:28                   ` Andrew Morton
2009-09-23  1:32                     ` Wu Fengguang
2009-09-23  1:47                       ` Andrew Morton
2009-09-23  2:01                         ` Wu Fengguang
2009-09-23  2:09                           ` Andrew Morton
2009-09-23  3:07                             ` Wu Fengguang
2009-09-23  1:45                     ` Wu Fengguang
2009-09-23  1:59                       ` Andrew Morton
2009-09-23  2:26                         ` Wu Fengguang
2009-09-23  2:36                           ` Andrew Morton
2009-09-23  2:49                             ` Wu Fengguang
2009-09-23  2:56                               ` Andrew Morton
2009-09-23  3:11                                 ` Wu Fengguang
2009-09-23  3:10                               ` Shaohua Li
2009-09-23  3:14                                 ` Wu Fengguang
2009-09-23  3:25                                   ` Wu Fengguang
2009-09-23 14:00                             ` Chris Mason
2009-09-24  3:15                               ` Wu Fengguang
2009-09-24 12:10                                 ` Chris Mason
2009-09-25  3:26                                   ` Wu Fengguang
2009-09-25  0:11                                 ` Dave Chinner
2009-09-25  0:38                                   ` Chris Mason
2009-09-25  5:04                                     ` Dave Chinner
2009-09-25  6:45                                       ` Wu Fengguang
2009-09-28  1:07                                         ` Dave Chinner
2009-09-28  7:15                                           ` Wu Fengguang
2009-09-28 13:08                                             ` Christoph Hellwig
2009-09-28 14:07                                               ` Theodore Tso
2009-09-30  5:26                                                 ` Wu Fengguang
2009-09-30  5:32                                                   ` Wu Fengguang
2009-10-01 22:17                                                     ` Jan Kara
2009-10-02  3:27                                                       ` Wu Fengguang
2009-10-06 12:55                                                         ` Jan Kara
2009-10-06 13:18                                                           ` Wu Fengguang
2009-09-30 14:11                                                   ` Theodore Tso
2009-10-01 15:14                                                     ` Wu Fengguang
2009-10-01 21:54                                                       ` Theodore Tso
2009-10-02  2:55                                                         ` Wu Fengguang
2009-10-02  8:19                                                           ` Wu Fengguang
2009-10-02 17:26                                                             ` Theodore Tso
2009-10-03  6:10                                                               ` Wu Fengguang
2009-09-29  2:32                                               ` Wu Fengguang
2009-09-29 14:00                                                 ` Chris Mason
2009-09-29 14:21                                                 ` Christoph Hellwig
2009-09-29  0:15                                             ` Wu Fengguang
2009-09-28 14:25                                           ` Chris Mason
2009-09-29 23:39                                             ` Dave Chinner
2009-09-30  1:30                                               ` Wu Fengguang
2009-09-25 12:06                                       ` Chris Mason
2009-09-25  3:19                                   ` Wu Fengguang
2009-09-26  1:47                                     ` Dave Chinner
2009-09-26  3:02                                       ` Wu Fengguang
2009-09-26  3:02                                         ` Wu Fengguang
2009-09-23  9:19                         ` Richard Kennedy
2009-09-23  9:23                           ` Peter Zijlstra
2009-09-23  9:37                             ` Wu Fengguang
2009-09-23 10:30                               ` Wu Fengguang
2009-09-23  6:41             ` Shaohua Li
2009-09-22 10:49 ` Wu Fengguang
2009-09-22 11:50   ` Shaohua Li
2009-09-22 13:39     ` Wu Fengguang
2009-09-23  1:52       ` Shaohua Li
2009-09-23  4:00         ` Wu Fengguang
2009-09-25  6:14           ` Wu Fengguang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090922114143.GA6175@sli10-desk.sh.intel.com \
    --to=shaohua.li@intel.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=chris.mason@oracle.com \
    --cc=fengguang.wu@intel.com \
    --cc=jens.axboe@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=richard@rsk.demon.co.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.