From: Wu Fengguang <fengguang.wu@intel.com>
To: Martin Bligh <mbligh@google.com>
Cc: Jens Axboe <jens.axboe@oracle.com>,
Chad Talbott <ctalbott@google.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Michael Rubin <mrubin@google.com>,
Andrew Morton <akpm@google.com>,
sandeen@redhat.com
Subject: Re: Bug in kernel 2.6.31, Slow wb_kupdate writeout
Date: Sat, 1 Aug 2009 12:02:24 +0800 [thread overview]
Message-ID: <20090801040224.GA13291@localhost> (raw)
In-Reply-To: <33307c790907301534v64c08f59o66fbdfbd3174ff5f@mail.gmail.com>
On Thu, Jul 30, 2009 at 03:34:12PM -0700, Martin Bligh wrote:
> > The test case above on a 4G machine is only generating 1G of dirty data.
> > I ran the same test case on the 16G, resulting in only background
> > writeout. The relevant bit here being that the background writeout
> > finished quickly, writing at disk speed.
> >
> > I re-ran the same test, but using 300 100MB files instead. While the
> > dd's are running, we are going at ~80MB/sec (this is disk speed, it's an
> > x25-m). When the dd's are done, it continues doing 80MB/sec for 10
> > seconds or so. Then the remainder (about 2G) is written in bursts at
> > disk speeds, but with some time in between.
>
> OK, I think the test case is sensitive to how many files you have - if
> we punt them to the back of the list, and yet we still have 299 other
> ones, it may well be able to keep the disk spinning despite the bug
> I outlined.Try using 30 1GB files?
>
> Though it doesn't seem to happen with just one dd streamer, and
> I don't see why the bug doesn't trigger in that case either.
I guess the bug is not related to number dd streamers, but whether
there is a stream of newly dirtied inodes (atime dirtiness would be
enough). Because wb_kupdate() itself won't give up on congestion, but
redirty_tail() would refresh the inode dirty time if there are newly
dirtied inodes in front. And we cannot claim it to be a bug of the
list based redirty_tail(), since we call it with the belief that the
inode is somehow blocked. In this manner redirty_tail() can refresh
the inode dirty time (and therefore delay its writeback for up to 30s)
at will.
> I believe the bugfix is correct independent of any bdi changes?
Agreed.
Thanks,
Fengguang
WARNING: multiple messages have this Message-ID (diff)
From: Wu Fengguang <fengguang.wu@intel.com>
To: Martin Bligh <mbligh@google.com>
Cc: Jens Axboe <jens.axboe@oracle.com>,
Chad Talbott <ctalbott@google.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Michael Rubin <mrubin@google.com>,
Andrew Morton <akpm@google.com>,
sandeen@redhat.com
Subject: Re: Bug in kernel 2.6.31, Slow wb_kupdate writeout
Date: Sat, 1 Aug 2009 12:02:24 +0800 [thread overview]
Message-ID: <20090801040224.GA13291@localhost> (raw)
In-Reply-To: <33307c790907301534v64c08f59o66fbdfbd3174ff5f@mail.gmail.com>
On Thu, Jul 30, 2009 at 03:34:12PM -0700, Martin Bligh wrote:
> > The test case above on a 4G machine is only generating 1G of dirty data.
> > I ran the same test case on the 16G, resulting in only background
> > writeout. The relevant bit here being that the background writeout
> > finished quickly, writing at disk speed.
> >
> > I re-ran the same test, but using 300 100MB files instead. While the
> > dd's are running, we are going at ~80MB/sec (this is disk speed, it's an
> > x25-m). When the dd's are done, it continues doing 80MB/sec for 10
> > seconds or so. Then the remainder (about 2G) is written in bursts at
> > disk speeds, but with some time in between.
>
> OK, I think the test case is sensitive to how many files you have - if
> we punt them to the back of the list, and yet we still have 299 other
> ones, it may well be able to keep the disk spinning despite the bug
> I outlined.Try using 30 1GB files?
>
> Though it doesn't seem to happen with just one dd streamer, and
> I don't see why the bug doesn't trigger in that case either.
I guess the bug is not related to number dd streamers, but whether
there is a stream of newly dirtied inodes (atime dirtiness would be
enough). Because wb_kupdate() itself won't give up on congestion, but
redirty_tail() would refresh the inode dirty time if there are newly
dirtied inodes in front. And we cannot claim it to be a bug of the
list based redirty_tail(), since we call it with the belief that the
inode is somehow blocked. In this manner redirty_tail() can refresh
the inode dirty time (and therefore delay its writeback for up to 30s)
at will.
> I believe the bugfix is correct independent of any bdi changes?
Agreed.
Thanks,
Fengguang
--
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>
next prev parent reply other threads:[~2009-08-01 4:02 UTC|newest]
Thread overview: 64+ 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 19:11 ` Chad Talbott
2009-07-28 21:49 ` Martin Bligh
2009-07-28 21:49 ` Martin Bligh
2009-07-29 7:15 ` Martin Bligh
2009-07-29 7:15 ` Martin Bligh
2009-07-29 11:43 ` Wu Fengguang
2009-07-29 11:43 ` Wu Fengguang
2009-07-29 14:11 ` Martin Bligh
2009-07-29 14:11 ` Martin Bligh
2009-07-30 1:06 ` Wu Fengguang
2009-07-30 1:06 ` Wu Fengguang
2009-07-30 1:12 ` Martin Bligh
2009-07-30 1:12 ` Martin Bligh
2009-07-30 1:57 ` Wu Fengguang
2009-07-30 1:57 ` Wu Fengguang
2009-07-30 2:59 ` Martin Bligh
2009-07-30 2:59 ` Martin Bligh
2009-07-30 4:08 ` Wu Fengguang
2009-07-30 4:08 ` Wu Fengguang
2009-07-30 19:55 ` Martin Bligh
2009-07-30 19:55 ` Martin Bligh
2009-08-01 2:02 ` Wu Fengguang
2009-08-01 2:02 ` Wu Fengguang
2009-07-30 0:19 ` Martin Bligh
2009-07-30 0:19 ` Martin Bligh
2009-07-30 1:28 ` Martin Bligh
2009-07-30 1:28 ` Martin Bligh
2009-07-30 2:09 ` Wu Fengguang
2009-07-30 2:09 ` Wu Fengguang
2009-07-30 2:57 ` Martin Bligh
2009-07-30 2:57 ` Martin Bligh
2009-07-30 3:19 ` Wu Fengguang
2009-07-30 3:19 ` Wu Fengguang
2009-07-30 20:33 ` Martin Bligh
2009-07-30 20:33 ` Martin Bligh
2009-08-01 2:58 ` Wu Fengguang
2009-08-01 2:58 ` Wu Fengguang
2009-08-01 4:10 ` Wu Fengguang
2009-08-01 4:10 ` Wu Fengguang
2009-07-30 1:49 ` Wu Fengguang
2009-07-30 1:49 ` Wu Fengguang
2009-07-30 21:39 ` Jens Axboe
2009-07-30 21:39 ` Jens Axboe
2009-07-30 22:01 ` Martin Bligh
2009-07-30 22:01 ` Martin Bligh
2009-07-30 22:17 ` Jens Axboe
2009-07-30 22:17 ` Jens Axboe
2009-07-30 22:34 ` Martin Bligh
2009-07-30 22:34 ` Martin Bligh
2009-07-30 22:43 ` Jens Axboe
2009-07-30 22:43 ` Jens Axboe
2009-07-30 22:48 ` Martin Bligh
2009-07-30 22:48 ` Martin Bligh
2009-07-31 7:50 ` Peter Zijlstra
2009-07-31 7:50 ` Peter Zijlstra
2009-08-01 4:03 ` Wu Fengguang
2009-08-01 4:03 ` Wu Fengguang
2009-08-01 4:53 ` Wu Fengguang
2009-08-01 4:53 ` Wu Fengguang
2009-08-01 5:03 ` Wu Fengguang
2009-08-01 5:03 ` Wu Fengguang
2009-08-01 4:02 ` Wu Fengguang [this message]
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=20090801040224.GA13291@localhost \
--to=fengguang.wu@intel.com \
--cc=akpm@google.com \
--cc=ctalbott@google.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mbligh@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 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.