FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Device-mapper Development

 
 
LinkBack Thread Tools
 
Old 03-08-2011, 05:54 AM
"Martin K. Petersen"
 
Default dm: Integrity errors should not cause failover

Integrity errors need to be passed to the owner of the integrity
metadata for processing. Consequently EILSEQ should be passed up the
stack.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

---

diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index f336c69..57f7dd3 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -1215,7 +1215,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
if (!error && !clone->errors)
return 0; /* I/O complete */

- if (error == -EOPNOTSUPP)
+ if (error == -EOPNOTSUPP || error == -EILSEQ)
return error;

if (mpio->pgpath)

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 03-08-2011, 02:14 PM
Mike Snitzer
 
Default dm: Integrity errors should not cause failover

On Tue, Mar 08 2011 at 1:54am -0500,
Martin K. Petersen <martin.petersen@oracle.com> wrote:

>
> Integrity errors need to be passed to the owner of the integrity
> metadata for processing. Consequently EILSEQ should be passed up the
> stack.
>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

Acked-by: Mike Snitzer <snitzer@redhat.com>

Thanks Martin. But James has already staged a few patches associated
with IO error differentation for 2.6.39. Your dm-mpath patch will need
to be rebased on that work; best to feed it to James too.

(we were gambling that there wouldn't be additional DM or block changes
related to this work and figured it safe to have James carry all the
SCSI, block and DM changes...

Problem is I'm not seeing a 2.6.39 branch in James' scsi-2.6-misc.git
(even though I know the changes are staged there

See:
http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=79775567e0439ca47eb9f501e52c4b7 13d44cf89
http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=751b2a7d623ead9e55f751a6087efea b454b5659
http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=63583cca745f440167bf27877182dc1 3e19d4bcf

James,
Any easy way to get Martin your 2.6.39 tree? Do you have a branch (just
the tag isn't exposed)?

Mike

> ---
>
> diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
> index f336c69..57f7dd3 100644
> --- a/drivers/md/dm-mpath.c
> +++ b/drivers/md/dm-mpath.c
> @@ -1215,7 +1215,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
> if (!error && !clone->errors)
> return 0; /* I/O complete */
>
> - if (error == -EOPNOTSUPP)
> + if (error == -EOPNOTSUPP || error == -EILSEQ)
> return error;
>
> if (mpio->pgpath)
>
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 03-08-2011, 02:20 PM
James Bottomley
 
Default dm: Integrity errors should not cause failover

On Tue, 2011-03-08 at 10:14 -0500, Mike Snitzer wrote:
> On Tue, Mar 08 2011 at 1:54am -0500,
> Martin K. Petersen <martin.petersen@oracle.com> wrote:
>
> >
> > Integrity errors need to be passed to the owner of the integrity
> > metadata for processing. Consequently EILSEQ should be passed up the
> > stack.
> >
> > Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
>
> Acked-by: Mike Snitzer <snitzer@redhat.com>
>
> Thanks Martin. But James has already staged a few patches associated
> with IO error differentation for 2.6.39. Your dm-mpath patch will need
> to be rebased on that work; best to feed it to James too.
>
> (we were gambling that there wouldn't be additional DM or block changes
> related to this work and figured it safe to have James carry all the
> SCSI, block and DM changes...
>
> Problem is I'm not seeing a 2.6.39 branch in James' scsi-2.6-misc.git
> (even though I know the changes are staged there
>
> See:
> http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=79775567e0439ca47eb9f501e52c4b7 13d44cf89
> http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=751b2a7d623ead9e55f751a6087efea b454b5659
> http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=63583cca745f440167bf27877182dc1 3e19d4bcf
>
> James,
> Any easy way to get Martin your 2.6.39 tree? Do you have a branch (just
> the tag isn't exposed)?

Branch for what? It's a linear tree with all the SCSI patches on
master.

James


--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 03-08-2011, 02:24 PM
"Martin K. Petersen"
 
Default dm: Integrity errors should not cause failover

>>>>> "Mike" == Mike Snitzer <snitzer@redhat.com> writes:

Mike> But James has already staged a few patches associated with IO
Mike> error differentation for 2.6.39. Your dm-mpath patch will need to
Mike> be rebased on that work;

Oh, I didn't see they finally went in. I'll take a look at scsi-misc.

--
Martin K. Petersen Oracle Linux Engineering

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 03-08-2011, 02:30 PM
Mike Snitzer
 
Default dm: Integrity errors should not cause failover

On Tue, Mar 08 2011 at 10:20am -0500,
James Bottomley <James.Bottomley@suse.de> wrote:

> On Tue, 2011-03-08 at 10:14 -0500, Mike Snitzer wrote:
> > On Tue, Mar 08 2011 at 1:54am -0500,
> > Martin K. Petersen <martin.petersen@oracle.com> wrote:
> >
> > >
> > > Integrity errors need to be passed to the owner of the integrity
> > > metadata for processing. Consequently EILSEQ should be passed up the
> > > stack.
> > >
> > > Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> >
> > Acked-by: Mike Snitzer <snitzer@redhat.com>
> >
> > Thanks Martin. But James has already staged a few patches associated
> > with IO error differentation for 2.6.39. Your dm-mpath patch will need
> > to be rebased on that work; best to feed it to James too.
> >
> > (we were gambling that there wouldn't be additional DM or block changes
> > related to this work and figured it safe to have James carry all the
> > SCSI, block and DM changes...
> >
> > Problem is I'm not seeing a 2.6.39 branch in James' scsi-2.6-misc.git
> > (even though I know the changes are staged there
> >
> > See:
> > http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=79775567e0439ca47eb9f501e52c4b7 13d44cf89
> > http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=751b2a7d623ead9e55f751a6087efea b454b5659
> > http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=63583cca745f440167bf27877182dc1 3e19d4bcf
> >
> > James,
> > Any easy way to get Martin your 2.6.39 tree? Do you have a branch (just
> > the tag isn't exposed)?
>
> Branch for what? It's a linear tree with all the SCSI patches on
> master.

Ah.. good to know. I hadn't looked that closely

But now that I look, you've been quite busy! The above commits are
buried pretty deep by now.

Mike

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 05-18-2011, 04:49 AM
"Martin K. Petersen"
 
Default dm: Integrity errors should not cause failover

Integrity errors need to be passed to the owner of the integrity
metadata for processing. Consequently EILSEQ should be passed up the
stack.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Acked-by: Mike Snitzer <snitzer@redhat.com>

---

Ping on this one?

diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index a550a05..aa4e570 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -1290,7 +1290,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
if (!error && !clone->errors)
return 0; /* I/O complete */

- if (error == -EOPNOTSUPP || error == -EREMOTEIO)
+ if (error == -EOPNOTSUPP || error == -EREMOTEIO || error == -EILSEQ)
return error;

if (mpio->pgpath)

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 05-18-2011, 12:11 PM
Mike Snitzer
 
Default dm: Integrity errors should not cause failover

On Wed, May 18 2011 at 12:49am -0400,
Martin K. Petersen <martin.petersen@oracle.com> wrote:

>
> Integrity errors need to be passed to the owner of the integrity
> metadata for processing. Consequently EILSEQ should be passed up the
> stack.
>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> Acked-by: Mike Snitzer <snitzer@redhat.com>
>
> ---
>
> Ping on this one?

It has been on my personal queue but I didn't push the issue with
Alasdair (for 2.6.39).

At this point seems we should be targetting this fix for 2.6.40 but I'll
defer to Alasdair on whether he'd like to push to .39 last minute.

> diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
> index a550a05..aa4e570 100644
> --- a/drivers/md/dm-mpath.c
> +++ b/drivers/md/dm-mpath.c
> @@ -1290,7 +1290,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
> if (!error && !clone->errors)
> return 0; /* I/O complete */
>
> - if (error == -EOPNOTSUPP || error == -EREMOTEIO)
> + if (error == -EOPNOTSUPP || error == -EREMOTEIO || error == -EILSEQ)
> return error;
>
> if (mpio->pgpath)

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 05-23-2011, 06:17 PM
Mike Snitzer
 
Default dm: Integrity errors should not cause failover

On Wed, May 18 2011 at 8:11am -0400,
Mike Snitzer <snitzer@redhat.com> wrote:

> On Wed, May 18 2011 at 12:49am -0400,
> Martin K. Petersen <martin.petersen@oracle.com> wrote:
>
> >
> > Integrity errors need to be passed to the owner of the integrity
> > metadata for processing. Consequently EILSEQ should be passed up the
> > stack.
> >
> > Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> > Acked-by: Mike Snitzer <snitzer@redhat.com>
> >
> > ---
> >
> > Ping on this one?
>
> It has been on my personal queue but I didn't push the issue with
> Alasdair (for 2.6.39).
>
> At this point seems we should be targetting this fix for 2.6.40 but I'll
> defer to Alasdair on whether he'd like to push to .39 last minute.

Hi Martin,

Alasdair and I just chatted about this patch: it will always pass the
the -EILSEQ up _without_ performing any mpath path failure.

The newfound concern is: is there ever a benefit to failing the path
before returning -EILSEQ?

Or will -EILSEQ always imply there is nothing wrong with the path?
E.g. a transport error cannot cause a CRC error -- the transport
error is always trapped by SCSI and cannot result in continued
processing of an IO (that goes on to have CRC error)?

Thanks,
Mike

>
> > diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
> > index a550a05..aa4e570 100644
> > --- a/drivers/md/dm-mpath.c
> > +++ b/drivers/md/dm-mpath.c
> > @@ -1290,7 +1290,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
> > if (!error && !clone->errors)
> > return 0; /* I/O complete */
> >
> > - if (error == -EOPNOTSUPP || error == -EREMOTEIO)
> > + if (error == -EOPNOTSUPP || error == -EREMOTEIO || error == -EILSEQ)
> > return error;
> >
> > if (mpio->pgpath)
>
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 05-25-2011, 03:04 PM
"Martin K. Petersen"
 
Default dm: Integrity errors should not cause failover

>>>>> "Mike" == Mike Snitzer <snitzer@redhat.com> writes:

Mike,

Mike> Alasdair and I just chatted about this patch: it will always pass
Mike> the the -EILSEQ up _without_ performing any mpath path failure.

Correct.


Mike> The newfound concern is: is there ever a benefit to failing the
Mike> path before returning -EILSEQ?

No, never.


Mike> Or will -EILSEQ always imply there is nothing wrong with the path?
Mike> E.g. a transport error cannot cause a CRC error -- the transport
Mike> error is always trapped by SCSI and cannot result in continued
Mike> processing of an IO (that goes on to have CRC error)?

-EILSEQ is only returned if a discrepancy is detected between data and
protection information. In both cases the block in question was
successfully received by either initiator or target. I.e. the path is
working fine.

--
Martin K. Petersen Oracle Linux Engineering

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 

Thread Tools




All times are GMT. The time now is 07:57 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org