[dm-devel] [Patch 2 of 2]: scsi-dh + dm-mpath: propagate SCSI device deletion to multipath
Menny_Hamburger at Dell.com
Menny_Hamburger at Dell.com
Thu Dec 16 14:21:45 UTC 2010
Mike,
What I meant is that removing the dm-mpath change from the patch makes the operation path go into an area that I did not test (the default case).
I know it's only a !hw_handler_name and a printk (as I said before - this might sound superstitious), however I did my tests with the dm-mpath part,
and I prefer to send a 100% tested patch then to add something I did not test.
My suggestion was to supply a scsi_dh only patch that goes through the same operation path as the one I tested - via the SCSI_DH_NOSYS case in pg_init_done. In addition, the separation of offline from cancel/del also seems the correct way to do this.
Hope this makes sense,
Menny
-----Original Message-----
From: Mike Snitzer [mailto:snitzer at redhat.com]
Sent: 16 December, 2010 16:02
To: Hamburger, Menny
Cc: dm-devel at redhat.com; Thomas, Rob; Dar, Itay
Subject: Re: [Patch 2 of 2]: scsi-dh + dm-mpath: propagate SCSI device deletion to multipath
On Thu, Dec 16 2010 at 2:32am -0500,
Menny_Hamburger at Dell.com <Menny_Hamburger at Dell.com> wrote:
> Hi Mike,
>
> I am sorry about the submission problems, there's a first time for everything...
>
> I know this sounds superstitious but I did run quite thorough tests on
> this issue and I would really prefer that the proposed patch would go
> through the same code path as the one I have tested.
>
> My suggestion is to modify the scsi_dh code as follows:
>
> if (!scsi_dh || !get_device(&sdev->sdev_gendev) ||
> sdev->sdev_state == SDEV_CANCEL ||
> sdev->sdev_state == SDEV_DEL)
> err = SCSI_DH_NOSYS;
>
> if (sdev->sdev_state == SDEV_OFFLINE)
> err = SCSI_DH_DEV_OFFLINED;
>
> if (err) {
> if (fn)
> fn(fn_data, err);
>
> return err;
> }
>
> There is logic and benefits here:
> 1) SDEV_CANCEL/SDEV_DEV are just a stage before the DH is deleted so we can respond with the same SCSI_DH_NOSYS.
> I think it's best here to handle these together, since they are in fact the same thing.
> In addition, when we delete a device, I don't think it goes through an offline state.
> 2) SDEV_OFFLINE is easily reverted by echoing to the state of the device - it's not like detaching.
> Returning SCSI_DH_DEV_OFFLINED will just call the default case and perform fail_path - no need to worry about any handler issues here.
> 3) It will let me sleep better at night...
I think you misunderstood me.
We had a bugzilla exchange yesterday (and as you stated above): the
dm-mpath change isn't required so it is only the scsi_dh patch that
needs to go upstream.
I didn't take issue with your scsi_dh patch. What I shared (below) was
that dm-devel isn't the appropriate place to email a patch that is
exclussively for scsi_dh. (This is just the tedious bit of "how does
this change go upstream?").
I'll take care of rebasing your scsi_dh patch to the scsi-misc git tree
I referenced and then send the patch to linux-scsi on your behalf.
Regards,
Mike
> -----Original Message-----
> From: Mike Snitzer [mailto:snitzer at redhat.com]
> Sent: 15 December, 2010 18:10
> To: Hamburger, Menny
> Cc: dm-devel at redhat.com
> Subject: Re: [Patch 2 of 2]: scsi-dh + dm-mpath: propagate SCSI device deletion to multipath
>
> On Wed, Dec 15 2010 at 3:31am -0500,
> Menny_Hamburger at dell.com <Menny_Hamburger at dell.com> wrote:
>
> > The problem:
> > When a SCSI device attached to a device handler is deleted, userland processes currently performing I/O on the device will I/O hang forever.
> >
> > Attached is the multipath layer part of the patch.
>
> Please do not use attachments when submitting patches. Please inline
> the patch in the body of the mail. Also please trim extraneous info
> when you reply to mails and please do not top-post.
>
> Your patch submissions were not well received by the dm-devel patchwork
> (which automatically collects submitted dm-devel patches so they don't
> get lost in the shuffle).
>
> Also, please use unique and descriptive subjects for the patches in a
> multipatch series.
>
> As for the proposed mpath change: Babu already pointed out that you
> don't need this mpath change as the default case already performs
> fail_path().
>
> So all you need is that scsi_dh patch to get upstream. But to do that
> you'll need to:
> 1) create a patch against the upstream scsi-misc tree (not RHEL5.5):
> git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
>
> 2) send the patch to the linux-scsi at vger.kernel.org mailing list (feel
> free to cc dm-devel too).
>
> Once this change is in the upstream scsi tree it'll propagate to RHEL
> releases.
>
> Thanks,
> Mike
More information about the dm-devel
mailing list