linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Wu Fengguang <fengguang.wu@intel.com>
To: Martin Bligh <mbligh@google.com>
Cc: Chad Talbott <ctalbott@google.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Michael Rubin <mrubin@google.com>,
	Andrew Morton <akpm@google.com>,
	"sandeen@redhat.com" <sandeen@redhat.com>,
	Michael Davidson <md@google.com>
Subject: Re: Bug in kernel 2.6.31, Slow wb_kupdate writeout
Date: Thu, 30 Jul 2009 10:09:22 +0800	[thread overview]
Message-ID: <20090730020922.GD7326@localhost> (raw)
In-Reply-To: <33307c790907291828x6906e874l4d75e695116aa874@mail.gmail.com>

On Thu, Jul 30, 2009 at 09:28:07AM +0800, Martin Bligh wrote:
> On Wed, Jul 29, 2009 at 5:19 PM, Martin Bligh<mbligh@google.com> wrote:
> > BTW, can you explain this code at the bottom of generic_sync_sb_inodes
> > for me?
> >
> > A  A  A  A  A  A  A  A if (wbc->nr_to_write <= 0) {
> > A  A  A  A  A  A  A  A  A  A  A  A wbc->more_io = 1;
> > A  A  A  A  A  A  A  A  A  A  A  A break;
> > A  A  A  A  A  A  A  A }
> >
> > I don't understand why we are setting more_io here? AFAICS, more_io
> > means there's more stuff to write ... I would think we'd set this if
> > nr_to_write was > 0 ?
> >
> > Or just have the section below brought up above this
> > break check and do:
> >
> > if (!list_empty(&sb->s_more_io) || !list_empty(&sb->s_io))
> > A  A  A  A wbc->more_io = 1;
> >
> > Am I just misunderstanding the intent of more_io ?
> 
> I am thinking along the lines of:

On closer looks I found this line:

                if (inode_dirtied_after(inode, start))
                        break;

In this case "list_empty(&sb->s_io)" is not a good criteria:
here we are breaking away for some other reasons, and shall
not touch wbc.more_io.

So let's stick with the current code?

Thanks,
Fengguang

> @@ -638,13 +609,11 @@ sync_sb_inodes(struct super_block *sb, s
>                 iput(inode);
>                 cond_resched();
>                 spin_lock(&inode_lock);
> -               if (wbc->nr_to_write <= 0) {
> -                       wbc->more_io = 1;
> +               if (wbc->nr_to_write <= 0)
>                         break;
> -               }
> -               if (!list_empty(&sb->s_more_io))
> -                       wbc->more_io = 1;
>         }
> +       if (!list_empty(&sb->s_more_io) || !list_empty(&sb->s_io)
> +               wbc->more_io = 1;
>         return;         /* Leave any unwritten inodes on s_io */
>  }

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2009-07-30  2:09 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-28 19:11 Bug in kernel 2.6.31, Slow wb_kupdate writeout Chad Talbott
2009-07-28 21:49 ` Martin Bligh
2009-07-29  7:15   ` Martin Bligh
2009-07-29 11:43     ` Wu Fengguang
2009-07-29 14:11       ` Martin Bligh
2009-07-30  1:06         ` Wu Fengguang
2009-07-30  1:12           ` Martin Bligh
2009-07-30  1:57             ` Wu Fengguang
2009-07-30  2:59               ` Martin Bligh
2009-07-30  4:08                 ` Wu Fengguang
2009-07-30 19:55                   ` Martin Bligh
2009-08-01  2:02                     ` Wu Fengguang
2009-07-30  0:19       ` Martin Bligh
2009-07-30  1:28         ` Martin Bligh
2009-07-30  2:09           ` Wu Fengguang [this message]
2009-07-30  2:57             ` Martin Bligh
2009-07-30  3:19               ` Wu Fengguang
2009-07-30 20:33                 ` Martin Bligh
2009-08-01  2:58                   ` Wu Fengguang
2009-08-01  4:10                   ` Wu Fengguang
2009-07-30  1:49         ` Wu Fengguang
2009-07-30 21:39 ` Jens Axboe
2009-07-30 22:01   ` Martin Bligh
2009-07-30 22:17     ` Jens Axboe
2009-07-30 22:34       ` Martin Bligh
2009-07-30 22:43         ` Jens Axboe
2009-07-30 22:48           ` Martin Bligh
2009-07-31  7:50             ` Peter Zijlstra
2009-08-01  4:03             ` Wu Fengguang
2009-08-01  4:53               ` Wu Fengguang
2009-08-01  5:03                 ` Wu Fengguang
2009-08-01  4:02         ` 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=20090730020922.GD7326@localhost \
    --to=fengguang.wu@intel.com \
    --cc=akpm@google.com \
    --cc=ctalbott@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mbligh@google.com \
    --cc=md@google.com \
    --cc=mrubin@google.com \
    --cc=sandeen@redhat.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).