From: Steven Pratt <slpratt@austin.ibm.com>
To: Chris Mason <chris.mason@oracle.com>,
Steven Pratt <slpratt@austin.ibm.com>,
linux-btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: Single disk performance
Date: Fri, 26 Jun 2009 21:26:59 -0500 [thread overview]
Message-ID: <4A458373.4010603@austin.ibm.com> (raw)
In-Reply-To: <20090626205659.GD3951@think>
Chris Mason wrote:
> On Fri, Jun 26, 2009 at 09:28:51AM -0500, Steven Pratt wrote:
>
>> Upgraded the btrfs tree to 6-17 and all of the stability problems went
>> away on the single disk system, so not sure if this was a code problem
>> or hardware, but at least stable now.
>> Performance results updated at:
>> http://btrfs.boxacle.net/repository/single-disk/History/History.html
>>
>> The fixed to the cow path are obvious for random write, although even on
>> single disk the CPU overhead is very noticeable as the efficiency graphs
>> show.
>>
>> The good news is that now the only workload that Btrfs is not at or near
>> the top in performance for single disk is MailServer.
>>
>
> Thanks Steve, glad to hear the stability problems are gone.
>
>
Well, maybe I spoke too soon. :-( Run with this patch died in similar
way to before. My remote service console is not responding, so will
probably be Monday before I can get to the lab to restart manually.
I am getting messages like:
8:36:13 btrfs2 kernel: [ 4200.909078] INFO: task ffsb:26362 blocked for
more than 120 seconds.
Jun 26 18:36:13 btrfs2 kernel: [ 4200.915474] "echo 0 >
/proc/sys/kernel/hung_task_timeout_secs" disables this message.
Jun 26 18:36:13 btrfs2 kernel: [ 4200.923338] ffsb D
ffffffff804e15e0 0 26362 26200
Jun 26 18:36:13 btrfs2 kernel: [ 4200.923346] ffff8801263bdcc8
0000000000000086 0000000000000000 ffff88004519d158
Jun 26 18:36:13 btrfs2 kernel: [ 4200.930914] 0000000000000000
ffff88013b9cc710 ffff88013fbf96f0 ffff88013b9cca98
Jun 26 18:36:13 btrfs2 kernel: [ 4200.938489] 00000008263bdca8
000000010039973e ffff8801263bdca8 ffff88012c95a600
Jun 26 18:36:13 btrfs2 kernel: [ 4200.946054] Call Trace:
Jun 26 18:36:13 btrfs2 kernel: [ 4200.948545] [<ffffffff804cbe09>]
schedule+0x9/0x1d
Jun 26 18:36:13 btrfs2 kernel: [ 4200.953459] [<ffffffff804cc09c>]
io_schedule+0x5d/0x9f
Jun 26 18:36:13 btrfs2 kernel: [ 4200.958718] [<ffffffff8027c86e>]
sync_page+0x44/0x48
Jun 26 18:36:13 btrfs2 kernel: [ 4200.963800] [<ffffffff804cc3e6>]
__wait_on_bit+0x45/0x77
Jun 26 18:36:13 btrfs2 kernel: [ 4200.969235] [<ffffffff8027c82a>] ?
sync_page+0x0/0x48
Jun 26 18:36:13 btrfs2 kernel: [ 4200.974408] [<ffffffff8027c9fa>]
wait_on_page_bit+0x6f/0x76
Jun 26 18:36:13 btrfs2 kernel: [ 4200.980107] [<ffffffff8024c498>] ?
wake_bit_function+0x0/0x2a
Jun 26 18:36:13 btrfs2 kernel: [ 4200.986050] [<ffffffffa036c123>]
prepare_pages+0xbd/0x1f3 [btrfs]
Jun 26 18:36:13 btrfs2 kernel: [ 4200.992281] [<ffffffffa036c619>]
btrfs_file_write+0x3c0/0x6d2 [btrfs]
Jun 26 18:36:13 btrfs2 kernel: [ 4200.998839] [<ffffffff802ab7b8>]
vfs_write+0xae/0x137
Jun 26 18:36:13 btrfs2 kernel: [ 4201.004351] [<ffffffff802abcfd>]
sys_write+0x47/0x6f
Jun 26 18:36:13 btrfs2 kernel: [ 4201.009773] [<ffffffff8020ba2b>]
system_call_fastpath+0x16/0x1b
Jun 26 18:36:13 btrfs2 kernel: [ 4201.016160] INFO: task ffsb:26366
blocked for more than 120 seconds.
Jun 26 18:36:13 btrfs2 kernel: [ 4201.022894] "echo 0 >
/proc/sys/kernel/hung_task_timeout_secs" disables this message.
Jun 26 18:36:13 btrfs2 kernel: [ 4201.031446] ffsb D
ffffffff804e15e0 0 26366 26200
Lots of these timeout messages, then eventually
18:40:32 btrfs2 kernel: [ 4459.870613] sd 0:0:1:0: [sdb] Unhandled
error code
Jun 26 18:40:32 btrfs2 kernel: [ 4459.870640] sd 0:0:1:0: [sdb] Result:
hostbyte=DID_ABORT driverbyte=DRIVER_OK
Jun 26 18:40:32 btrfs2 kernel: [ 4459.870646] end_request: I/O error,
dev sdb, sector 103359232
So still not sure if this is HW, but no other FS has triggered it.
Steve
> Could you please try this one liner to see if our big CPU problem during
> streaming writes goes away?
>
> diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
> index 126477e..7c3cd24 100644
> --- a/fs/btrfs/file.c
> +++ b/fs/btrfs/file.c
> @@ -151,7 +151,10 @@ static noinline int dirty_and_release_pages(struct btrfs_trans_handle *trans,
> }
> if (end_pos > isize) {
> i_size_write(inode, end_pos);
> - btrfs_update_inode(trans, root, inode);
> + /* we've only changed i_size in ram, and we haven't updated
> + * the disk i_size. There is no need to log the inode
> + * at this time.
> + */
> }
> err = btrfs_end_transaction(trans, root);
> out_unlock:
>
next prev parent reply other threads:[~2009-06-27 2:26 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-26 14:28 Single disk performance Steven Pratt
2009-06-26 20:56 ` Chris Mason
2009-06-27 2:26 ` Steven Pratt [this message]
2009-06-29 12:41 ` Chris Mason
2009-06-29 23:17 ` Bron Gondwana
2009-06-30 11:02 ` Chris Mason
2009-06-30 14:38 ` Steven Pratt
2009-06-30 15:10 ` Yan Zheng
2009-06-30 15:26 ` Steven Pratt
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=4A458373.4010603@austin.ibm.com \
--to=slpratt@austin.ibm.com \
--cc=chris.mason@oracle.com \
--cc=linux-btrfs@vger.kernel.org \
/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