From: Jeff Layton <jlayton@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Al Viro <viro@ZenIV.linux.org.uk>, Jan Kara <jack@suse.cz>,
tytso@mit.edu, axboe@kernel.dk, mawilcox@microsoft.com,
ross.zwisler@linux.intel.com, corbet@lwn.net,
linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-block@vger.kernel.org,
linux-doc@vger.kernel.org
Subject: Re: [PATCH v5 00/17] fs: introduce new writeback error reporting and convert ext2 and ext4 to use it
Date: Wed, 31 May 2017 18:01:10 -0400 [thread overview]
Message-ID: <1496268070.2984.15.camel@redhat.com> (raw)
In-Reply-To: <20170531143713.95796a8bce699d263b764763@linux-foundation.org>
On Wed, 2017-05-31 at 14:37 -0700, Andrew Morton wrote:
> On Wed, 31 May 2017 17:31:49 -0400 Jeff Layton <jlayton@redhat.com> wrote:
>
> > On Wed, 2017-05-31 at 13:27 -0700, Andrew Morton wrote:
> > > On Wed, 31 May 2017 08:45:23 -0400 Jeff Layton <jlayton@redhat.com> wrote:
> > >
> > > > This is v5 of the patchset to improve how we're tracking and reporting
> > > > errors that occur during pagecache writeback.
> > >
> > > I'm curious to know how you've been testing this?
> > > Is that testing
> > > strong enough for us to be confident that all nature of I/O errors
> > > will be reported to userspace?
> > >
> >
> > That's a tall order. This is a difficult thing to test as these sorts of
> > errors are pretty rare by nature.
> >
> > I have an xfstest that I posted just after this set that demonstrates
> > that it works correctly, at least on ext2/3/4 when run by the ext4
> > driver (ext2 legacy driver reports too many errors currently). I had
> > btrfs and xfs working on that test too in an earlier incarnation of this
> > set, so I think we can fix this in them as well without too much
> > difficulty.
> >
> > I'm happy to run other tests if someone wants to suggest them.
> >
> > Now, all that said, I don't think this will make things any worse than
> > they are today as far as reporting errors properly to userland goes.
> > It's rather easy for an incidental synchronous writeback request from an
> > internal caller to clear the AS_* flags today. This will at least ensure
> > that we're reporting errors since a well-defined point in time when you
> > call fsync.
>
> Were you using error injection of some form? If so, how was that all
> set up?
>
Yes, it uses dm-error for fault injection.
The test basically does:
1) set up a dm-error device in a working configuration
2) build a scratch filesystem on it, with the log on a different device
in some fashion so metadata writeback will still succeed.
3) open the same file several times
4) flip dm-error device to non-working mode
5) write to each fd
6) fsync each fd
...do you get back an error on each fsync?
It then does a bit more to make sure they're cleared afterward as you'd
expect. That works for most block device based filesystems. I also have
a second xfstest that opens a block device and does the same basic
thing. That also works correctly with this patch series.
I still need to come up with a way to simulate errors on other fs'
though. We may need to plumb in some kernel-level fault injection on
some fs' to do that correctly. Suggestions welcome there.
With this series though, the idea is to convert one filesystem at a
time, so I think that should help mitigate some of the risk.
--
Jeff Layton <jlayton@redhat.com>
next prev parent reply other threads:[~2017-05-31 22:01 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-31 12:45 [PATCH v5 00/17] fs: introduce new writeback error reporting and convert ext2 and ext4 to use it Jeff Layton
2017-05-31 12:45 ` [PATCH v5 01/17] lib: add errseq_t type and infrastructure for handling it Jeff Layton
2017-05-31 12:45 ` [PATCH v5 02/17] fs: new infrastructure for writeback error handling and reporting Jeff Layton
2017-05-31 12:45 ` [PATCH v5 03/17] mm: tracepoints for writeback error events Jeff Layton
2017-05-31 12:45 ` [PATCH v5 04/17] fs: add a new fstype flag to indicate how writeback errors are tracked Jeff Layton
2017-05-31 12:45 ` [PATCH v5 05/17] Documentation: flesh out the section in vfs.txt on storing and reporting writeback errors Jeff Layton
2017-05-31 12:45 ` [PATCH v5 06/17] fs: adapt sync_file_range to new reporting infrastructure Jeff Layton
2017-05-31 12:45 ` [PATCH v5 07/17] mm: add filemap_fdatawait_range_since and filemap_write_and_wait_range_since Jeff Layton
2017-05-31 12:45 ` [PATCH v5 08/17] dax: set errors in mapping when writeback fails Jeff Layton
2017-06-06 1:01 ` Ross Zwisler
2017-06-06 1:08 ` Jeff Layton
2017-05-31 12:45 ` [PATCH v5 09/17] block: convert to errseq_t based writeback error tracking Jeff Layton
2017-05-31 12:45 ` [PATCH v5 10/17] block: add sync_blockdev_since and sync_filesystem_since Jeff Layton
2017-05-31 12:45 ` [PATCH v5 11/17] fs: add f_md_wb_err field to struct file for tracking metadata errors Jeff Layton
2017-05-31 12:45 ` [PATCH v5 12/17] fs: allow __generic_file_fsync to support both flavors of error reporting Jeff Layton
2017-05-31 12:45 ` [PATCH v5 13/17] jbd2: conditionally handle errors using errseq_t based on FS_WB_ERRSEQ flag Jeff Layton
2017-05-31 12:45 ` [PATCH v5 14/17] ext4: convert to errseq_t based error tracking Jeff Layton
2017-05-31 12:45 ` [PATCH v5 15/17] fs: add a write_one_page_since Jeff Layton
2017-05-31 12:45 ` [PATCH v5 16/17] ext2: convert to errseq_t based writeback error tracking Jeff Layton
2017-05-31 12:45 ` [PATCH v5 17/17] fs: convert ext2 to use write_one_page_since Jeff Layton
2017-05-31 20:27 ` [PATCH v5 00/17] fs: introduce new writeback error reporting and convert ext2 and ext4 to use it Andrew Morton
2017-05-31 21:31 ` Jeff Layton
2017-05-31 21:37 ` Andrew Morton
2017-05-31 22:01 ` Jeff Layton [this message]
2017-06-02 5:25 ` Ross Zwisler
2017-06-02 10:07 ` Jeff Layton
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=1496268070.2984.15.camel@redhat.com \
--to=jlayton@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=corbet@lwn.net \
--cc=jack@suse.cz \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mawilcox@microsoft.com \
--cc=ross.zwisler@linux.intel.com \
--cc=tytso@mit.edu \
--cc=viro@ZenIV.linux.org.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.