From: Mark Lord <liml@rtr.ca>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Mark Lord <lkml@rtr.ca>, Norman Diamond <n0diamond@yahoo.co.jp>,
linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org
Subject: Re: Overagressive failing of disk reads, both LIBATA and IDE
Date: Sat, 21 Mar 2009 11:20:21 -0400 [thread overview]
Message-ID: <49C505B5.9020804@rtr.ca> (raw)
In-Reply-To: <1237648115.4600.12.camel@localhost.localdomain>
James Bottomley wrote:
> On Sat, 2009-03-21 at 10:55 -0400, Mark Lord wrote:
..
>> The patch *does* use the disk supplied data about the error,
>> and returns success for sectors up to that point. Where it differs
>> from mainline SCSI, is that it then continues attempting the remaining
>> 2000 sectors (or whatever) of the request, hoping that not all of
>> them are bad.
>
> Um, but so does SCSI without your patch ... that was my point.
..
Does it? I thought it still just failed everything after the first
bad sector? Kudos are due if that's working now.
..
> I don't really think we'd do that. The problem, as you say is request
> combination. I think if we really wanted to do this, we'd have block do
> it. Each separate request that's merged gets a separate bio, and block
> already has capabilities to pick up per bio errors, so we'd do the
> partial completion of the failing bio then skip to the next one in the
> request to try. That would completely solve both readahead problems and
> request merging ones.
..
Yeah, that's a reasonable way to tackle. And you're right, we *did* discuss
this back two years ago. It just never made it as far as new code. :)
Something else that might be good here, would be to have the md layer
pass down a (per-bio?) flag indicating whether it has redundacy capability
or not for the I/O. Eg. healthy RAID1/4/5/10 etc.. would set the flag,
and SCSI could then just abort immediately on a bad sector, with NO retries
beyond the first bad one.
On RAID0, or a degraded (no spares) RAID1 etc, it would not set the flag,
so SCSI would try harder to recover the data, as we're discussing above.
This sounds like FAST_FAIL, but is different. And the hint needs to
come from the upper layer that is performing redundancy.
next prev parent reply other threads:[~2009-03-21 15:20 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-20 2:12 Overagressive failing of disk reads, both LIBATA and IDE Norman Diamond
2009-03-20 2:12 ` Norman Diamond
2009-03-20 3:32 ` Mark Lord
2009-03-20 10:00 ` Andrew Morton
2009-03-20 13:09 ` Mark Lord
2009-03-21 14:22 ` James Bottomley
2009-03-21 14:55 ` Mark Lord
2009-03-21 15:01 ` Mark Lord
2009-03-21 15:08 ` James Bottomley
2009-03-21 15:20 ` Mark Lord [this message]
2009-03-21 15:10 ` Alan Cox
2009-03-21 15:18 ` James Bottomley
2009-03-22 2:15 ` Norman Diamond
2009-03-22 2:15 ` Norman Diamond
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=49C505B5.9020804@rtr.ca \
--to=liml@rtr.ca \
--cc=James.Bottomley@HansenPartnership.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml@rtr.ca \
--cc=n0diamond@yahoo.co.jp \
/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.