From: Theodore Ts'o <tytso@mit.edu>
To: Lucas Nussbaum <lucas.nussbaum@loria.fr>
Cc: linux-ext4@vger.kernel.org,
Emmanuel Jeanvoine <emmanuel.jeanvoine@inria.fr>
Subject: [PATCH, RFC] jbd2: don't write non-commit blocks synchronously
Date: Thu, 6 Mar 2014 08:56:42 -0500 [thread overview]
Message-ID: <20140306135642.GA22136@thunk.org> (raw)
In-Reply-To: <20140305141343.GA26225@xanadu.blop.info>
On Wed, Mar 05, 2014 at 03:13:43PM +0100, Lucas Nussbaum wrote:
> TL;DR: we experience long temporary hangs when doing multiple mount -o
> remount at the same time as other I/O on an ext4 filesystem.
Hi Lukas,
Thanks for this report. Are you willing to try a kernel patch? If
so, could you try and see if this fixes your issue. From looking at
your block trace, I saw a large number of suspicious 4k writes from
the jbd2 layer.
- Ted
commit 137d7cea675fd7d8ff98b7e035fb6516dc4ab220
Author: Theodore Ts'o <tytso@mit.edu>
Date: Thu Mar 6 08:56:11 2014 -0500
jbd2: don't write non-commit blocks synchronously
We don't need to write the revoke blocks and descriptor blocks using
WRITE_SYNC, since when we issue the commit block, thos blocks will get
pushed out via REQ_FLUSH. This will allow the journal blocks to be
written in fewer i/o operations (otherwise we end up issuing a whole
series of 4k writes unnecessarily).
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index cf2fc05..fb64629 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -554,7 +554,7 @@ void jbd2_journal_commit_transaction(journal_t *journal)
blk_start_plug(&plug);
jbd2_journal_write_revoke_records(journal, commit_transaction,
- &log_bufs, WRITE_SYNC);
+ &log_bufs, WRITE);
blk_finish_plug(&plug);
jbd_debug(3, "JBD2: commit phase 2b\n");
@@ -739,7 +739,7 @@ start_journal_io:
clear_buffer_dirty(bh);
set_buffer_uptodate(bh);
bh->b_end_io = journal_end_buffer_io_sync;
- submit_bh(WRITE_SYNC, bh);
+ submit_bh(WRITE, bh);
}
cond_resched();
stats.run.rs_blocks_logged += bufs;
next prev parent reply other threads:[~2014-03-06 13:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-05 14:13 Extremely slow remounts with concurrent I/O Lucas Nussbaum
2014-03-06 13:56 ` Theodore Ts'o [this message]
2014-03-06 17:28 ` [PATCH, RFC] jbd2: don't write non-commit blocks synchronously Lucas Nussbaum
2014-03-06 18:27 ` Theodore Ts'o
2014-03-06 18:45 ` Lucas Nussbaum
2014-03-06 18:37 ` Lucas Nussbaum
2014-03-08 16:08 ` [PATCH, RFC] fs: only call sync_filesystem() when remounting read-only Theodore Ts'o
2014-03-10 11:45 ` Lucas Nussbaum
2014-03-10 14:41 ` Theodore Ts'o
2014-03-10 12:15 ` Lucas Nussbaum
2014-03-13 0:36 ` Dave Chinner
2014-03-13 1:16 ` Theodore Ts'o
2014-03-13 3:14 ` Theodore Ts'o
2014-03-13 6:04 ` Dave Chinner
2014-03-13 12:55 ` Theodore Ts'o
2014-03-13 7:39 ` Christoph Hellwig
2014-03-13 14:20 ` [PATCH] fs: push sync_filesystem() down to the file system's remount_fs() Theodore Ts'o
[not found] ` <1394720456-16629-1-git-send-email-tytso-3s7WtUTddSA@public.gmane.org>
2014-03-13 16:23 ` Jan Kara
2014-03-13 16:28 ` Steven Whitehouse
2014-03-13 23:15 ` [Cluster-devel] " Theodore Ts'o
[not found] ` <20140313231506.GB16785-AKGzg7BKzIDYtjvyW6yDsg@public.gmane.org>
2014-03-14 12:13 ` Jan Kara
2014-03-14 0:33 ` Steve French
2014-03-14 1:23 ` Theodore Ts'o
2014-03-13 7:19 ` Extremely slow remounts with concurrent I/O Dave Chinner
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=20140306135642.GA22136@thunk.org \
--to=tytso@mit.edu \
--cc=emmanuel.jeanvoine@inria.fr \
--cc=linux-ext4@vger.kernel.org \
--cc=lucas.nussbaum@loria.fr \
/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).