From: Jens Axboe <jens.axboe@oracle.com>
To: Tejun Heo <tj@kernel.org>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
James Bottomley <James.Bottomley@HansenPartnership.com>,
linux-scsi <linux-scsi@vger.kernel.org>,
Niel Lambrechts <niel.lambrechts@gmail.com>,
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Subject: Re: [PATCHSET] block: fix merge of requests with different failfast settings
Date: Fri, 3 Jul 2009 12:54:31 +0200 [thread overview]
Message-ID: <20090703105431.GN23611@kernel.dk> (raw)
In-Reply-To: <1246610898-22350-1-git-send-email-tj@kernel.org>
On Fri, Jul 03 2009, Tejun Heo wrote:
> Hello,
>
> Block layer didn't consider failfast status while merging requests and
> it led to premature failure of normal (non-failfast) IOs. Niel
> Lambrechts could trigger the problem semi-reliably on ext4 when
> resuming from STR. ext4 uses readahead when reading inodes and
> combined with the deterministic extra SATA PHY exception cycle during
> resume on the specific configuration, non-readahead inode read would
> fail causing ext4 errors. Please read the following thread for
> details.
>
> http://lkml.org/lkml/2009/5/23/21
>
> This patchset contains the following four patches to fix the problem.
>
> 0001-block-don-t-merge-requests-of-different-failfast-se.patch
> 0002-block-use-the-same-failfast-bits-for-bio-and-reques.patch
> 0003-block-implement-mixed-merge-of-different-failfast-r.patch
> 0004-scsi-block-update-SCSI-to-handle-mixed-merge-failur.patch
>
> 0001 disallows merge between requests with different failfast
> settings. This one is the quick fix and should go into 2.6.31 and
> later to -stable as the bug is pretty serious and may lead to data
> loss.
>
> 0002 preps for later changes.
>
> 0003-0004 implements and applies mixed merge. Requests of different
> failfast settings are merged as before but failure handling is updated
> such that parts which shouldn't fail without retrial are properly
> retried.
>
> I spent quite some time thinking about and testing it but I'd really
> like more pairs of eyes on this patchset as dangerous bugs can go
> unnoticed for quite a while in this area (anyone knows when the
> failfast bug was introduced?).
It must have been several releases ago. So while the bug is indeed very
nasty, I don't think there's been much fallout from it.
> Jens, I think the best way to merge this is to first push 0001 to
> Linus's tree and then pull it into for-next and then apply the rest on
> top of them.
Yeah I'll do that, #1 for 2.6.31 and the rest for .32. Thanks for
finding and fixing this bug!
--
Jens Axboe
prev parent reply other threads:[~2009-07-03 10:54 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-03 8:48 [PATCHSET] block: fix merge of requests with different failfast settings Tejun Heo
2009-07-03 8:48 ` Tejun Heo
2009-07-03 8:48 ` [PATCH 1/4] block: don't merge requests of " Tejun Heo
2009-07-03 8:48 ` Tejun Heo
2009-07-03 8:48 ` [PATCH 2/4] block: use the same failfast bits for bio and request Tejun Heo
2009-07-03 8:48 ` Tejun Heo
2009-07-05 9:27 ` Boaz Harrosh
2009-07-09 0:45 ` Tejun Heo
2009-07-09 9:12 ` Boaz Harrosh
2009-07-09 13:37 ` Christoph Hellwig
2009-07-09 17:20 ` Jeff Garzik
2009-07-09 17:39 ` Jens Axboe
2009-07-10 13:18 ` Tejun Heo
2009-07-12 12:06 ` Boaz Harrosh
2009-07-15 9:27 ` Tejun Heo
2009-07-03 8:48 ` [PATCH 3/4] block: implement mixed merge of different failfast requests Tejun Heo
2009-07-03 8:48 ` Tejun Heo
2009-07-05 9:27 ` Boaz Harrosh
2009-07-09 0:47 ` Tejun Heo
2009-07-09 9:17 ` Boaz Harrosh
2009-07-15 9:41 ` Tejun Heo
2009-07-03 8:48 ` [PATCH 4/4] scsi,block: update SCSI to handle mixed merge failures Tejun Heo
2009-07-03 8:48 ` Tejun Heo
2009-07-03 10:54 ` Jens Axboe [this message]
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=20090703105431.GN23611@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=niel.lambrechts@gmail.com \
--cc=tj@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 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.