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 11-02-2011, 02:41 PM
"Moger, Babu"
 
Default scsi_dh_rdac: Adding the match function for rdac device handler

> -----Original Message-----
> From: Hannes Reinecke [mailto:hare@suse.de]
> Sent: Wednesday, November 02, 2011 10:34 AM
> To: device-mapper development
> Cc: Moger, Babu; Linux SCSI Mailing list
> Subject: Re: [dm-devel] [PATCH 3/4] scsi_dh_rdac: Adding the match
> function for rdac device handler
>
> On 11/02/2011 04:23 PM, Moger, Babu wrote:
> >> -----Original Message-----
> >> From: Hannes Reinecke [mailto:hare@suse.de]
> >> Sent: Wednesday, November 02, 2011 2:21 AM
> >> To: dm-devel@redhat.com
> >> Subject: Re: [dm-devel] [PATCH 3/4] scsi_dh_rdac: Adding the match
> >> function for rdac device handler
> >>
> >> On 11/01/2011 06:19 PM, Moger, Babu wrote:
> >>> This patch introduces the match function for rdac device handler.
> >> Without this,
> >>> sometimes handler attach fails during the device_add. The match
> >> function was
> >>> introduced by this patch
> >>> http://www.spinics.net/lists/linux-scsi/msg54284.html
> >>>
> >>> Signed-off-by: Babu Moger<babu.moger@netapp.com>
> >>> ---
> >>>
> >>> --- linux/drivers/scsi/device_handler/scsi_dh_rdac.c.orig 2011-
> 10-31
> >> 11:25:44.000000000 -0500
> >>> +++ linux/drivers/scsi/device_handler/scsi_dh_rdac.c 2011-10-31
> >> 11:31:34.000000000 -0500
> >>> @@ -819,6 +819,21 @@ static const struct scsi_dh_devlist rdac
> >>> {NULL, NULL},
> >>> };
> >>>
> >>> +static bool rdac_match(struct scsi_device *sdev)
> >>> +{
> >>> + int i;
> >>> +
> >>> + for (i = 0; rdac_dev_list[i].vendor; i++) {
> >>> + if (!strncmp(sdev->vendor, rdac_dev_list[i].vendor,
> >>> + strlen(rdac_dev_list[i].vendor))&&
> >>> + !strncmp(sdev->model, rdac_dev_list[i].model,
> >>> + strlen(rdac_dev_list[i].model))) {
> >>> + return true;
> >>> + }
> >>> + }
> >>> + return false;
> >>> +}
> >>> +
> >>> static int rdac_bus_attach(struct scsi_device *sdev);
> >>> static void rdac_bus_detach(struct scsi_device *sdev);
> >>>
> >>> @@ -831,6 +846,7 @@ static struct scsi_device_handler rdac_d
> >>> .attach = rdac_bus_attach,
> >>> .detach = rdac_bus_detach,
> >>> .activate = rdac_activate,
> >>> + .match = rdac_match,
> >>> };
> >>>
> >>> static int rdac_bus_attach(struct scsi_device *sdev)
> >>>
> >> As stated in the other mail, I guess we would need to have a check
> >> if the LUN is in ALUA mode.
> >> And, btw, the _original_ intention was to allow vendor-specific
> >> device_handler to do some better probing, eg querying some
> >> vendor-specific VPD pages.
> >> Especially for RDAC it would make far more sense to query the
> >> existence and format of one of the RDAC-specific VPD pages (eg 0xC2,
> >> 0xC4, or 0xC8) and use that for matching.
> >> Then you could do away with the vendor/model array altogether here
> >> and we wouldn't need to update the rdac handler every time a new
> >> array comes out or has been rebranded by some OEM.
> >
> > OK. I will add the check for TPGS. I will send the patches tomorrow.
> > For sending the VPD pages(0xC2, 0xC4 and 0xC8), I think we need be
> > little careful here.
> > This includes sending these commands to every possible device in the
> > system. That is what we want to avoid.
> > I will investigate more on that. That will be my next set of patches
> > independent of this.
> >
> Fair enough.
> As long as it's understood to be an interim solution, then we would
> only need to check for the TGPS bit.
> Which has the neat side-effect that we don't actually have to do any
> I/O to check this, as the information is already present at that time.
>
> While you're at it, could you please add this check for scsi_dh_emc,
> too?
> The Clariion is also able to run in dual-mode, so the same check is
> required there, too.

Sure.. Will add the check to Clariion also..

>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke zSeries & Storage
> hare@suse.de +49 911 74053 688
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
> GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 
Old 11-03-2011, 01:47 PM
"Moger, Babu"
 
Default scsi_dh_rdac: Adding the match function for rdac device handler

> -----Original Message-----
> From: Mike Snitzer [mailto:snitzer@redhat.com]
> Sent: Wednesday, November 02, 2011 10:46 AM
> To: device-mapper development
> Cc: Linux SCSI Mailing list
> Subject: Re: [dm-devel] [PATCH 3/4] scsi_dh_rdac: Adding the match
> function for rdac device handler
>
> On Wed, Nov 02 2011 at 11:23am -0400,
> Moger, Babu <Babu.Moger@netapp.com> wrote:
>
> > > -----Original Message-----
> > > From: Hannes Reinecke [mailto:hare@suse.de]
> > > Sent: Wednesday, November 02, 2011 2:21 AM
> > > To: dm-devel@redhat.com
> > > Subject: Re: [dm-devel] [PATCH 3/4] scsi_dh_rdac: Adding the match
> > > function for rdac device handler
> > >
> > > On 11/01/2011 06:19 PM, Moger, Babu wrote:
> > > > This patch introduces the match function for rdac device handler.
> > > Without this,
> > > > sometimes handler attach fails during the device_add. The match
> > > function was
> > > > introduced by this patch
> > > > http://www.spinics.net/lists/linux-scsi/msg54284.html
> > > >
> > > > Signed-off-by: Babu Moger<babu.moger@netapp.com>
> > > > ---
> > > >
> > > > --- linux/drivers/scsi/device_handler/scsi_dh_rdac.c.orig 2011-
> 10-31
> > > 11:25:44.000000000 -0500
> > > > +++ linux/drivers/scsi/device_handler/scsi_dh_rdac.c 2011-10-31
> > > 11:31:34.000000000 -0500
> > > > @@ -819,6 +819,21 @@ static const struct scsi_dh_devlist rdac
> > > > {NULL, NULL},
> > > > };
> > > >
> > > > +static bool rdac_match(struct scsi_device *sdev)
> > > > +{
> > > > + int i;
> > > > +
> > > > + for (i = 0; rdac_dev_list[i].vendor; i++) {
> > > > + if (!strncmp(sdev->vendor, rdac_dev_list[i].vendor,
> > > > + strlen(rdac_dev_list[i].vendor))&&
> > > > + !strncmp(sdev->model, rdac_dev_list[i].model,
> > > > + strlen(rdac_dev_list[i].model))) {
> > > > + return true;
> > > > + }
> > > > + }
> > > > + return false;
> > > > +}
> > > > +
> > > > static int rdac_bus_attach(struct scsi_device *sdev);
> > > > static void rdac_bus_detach(struct scsi_device *sdev);
> > > >
> > > > @@ -831,6 +846,7 @@ static struct scsi_device_handler rdac_d
> > > > .attach = rdac_bus_attach,
> > > > .detach = rdac_bus_detach,
> > > > .activate = rdac_activate,
> > > > + .match = rdac_match,
> > > > };
> > > >
> > > > static int rdac_bus_attach(struct scsi_device *sdev)
> > > >
> > > As stated in the other mail, I guess we would need to have a check
> > > if the LUN is in ALUA mode.
> > > And, btw, the _original_ intention was to allow vendor-specific
> > > device_handler to do some better probing, eg querying some
> > > vendor-specific VPD pages.
> > > Especially for RDAC it would make far more sense to query the
> > > existence and format of one of the RDAC-specific VPD pages (eg
> 0xC2,
> > > 0xC4, or 0xC8) and use that for matching.
> > > Then you could do away with the vendor/model array altogether here
> > > and we wouldn't need to update the rdac handler every time a new
> > > array comes out or has been rebranded by some OEM.
> >
> > OK. I will add the check for TPGS. I will send the patches tomorrow.
> > For sending the VPD pages(0xC2, 0xC4 and 0xC8), I think we need be
> little careful here.
> > This includes sending these commands to every possible device in the
> system. That is what we want to avoid.
> > I will investigate more on that. That will be my next set of patches
> independent of this.
>
> Much appreciated. I agree with Hannes, ideally we wouldn't need the
> rdac dev_list.

Yes, We would like to remove the dependency on Vendor/product strings.
I will work on that. These current patches will address the current the
Attach issue which I mentioned in the description(PATCH 0/4).
I will resubmit the patches now..

>
> What about the issue where the appropriate scsi_dh isn't attached
> during
> scan (resulting in boot failures, trespasses, etc)?
>
> Hannes, I know you had plans for how to address the early scsi_dh
> attachment (and this match() work is a great step forward). I just
> wanted to touch base with you on what your current vision is on how to
> achieve proper early scsi_dh attachment (and what the remaining TODO
> is).

I am not aware of any other issue at this point. Hannes may know about it.

>
> Thanks,
> Mike
>
> --
> 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 11-16-2011, 09:10 PM
"Moger, Babu"
 
Default scsi_dh_rdac: Adding the match function for rdac device handler

> -----Original Message-----
> From: Mike Snitzer [mailto:snitzer@redhat.com]
> Sent: Wednesday, November 16, 2011 11:33 AM
> To: Moger, Babu; hare@suse.de
> Cc: Linux SCSI Mailing list; device-mapper development; Peter Jones
> Subject: Re: [PATCH 3/4] scsi_dh_rdac: Adding the match function for
> rdac device handler
>
> On Thu, Nov 03 2011 at 11:17am -0400,
> Mike Snitzer <snitzer@redhat.com> wrote:
>
> > On Thu, Nov 03 2011 at 10:47am -0400,
> > Moger, Babu <Babu.Moger@netapp.com> wrote:
> >
> > > > -----Original Message-----
> > > > From: Mike Snitzer [mailto:snitzer@redhat.com]
> > > > Sent: Wednesday, November 02, 2011 10:46 AM
> > > > To: device-mapper development
> > > > Cc: Linux SCSI Mailing list
> > > > Subject: Re: [dm-devel] [PATCH 3/4] scsi_dh_rdac: Adding the
> match
> > > > function for rdac device handler
>
> ...
>
> > > > What about the issue where the appropriate scsi_dh isn't attached
> > > > during
> > > > scan (resulting in boot failures, trespasses, etc)?
> > > >
> > > > Hannes, I know you had plans for how to address the early scsi_dh
> > > > attachment (and this match() work is a great step forward). I
> just
> > > > wanted to touch base with you on what your current vision is on
> how to
> > > > achieve proper early scsi_dh attachment (and what the remaining
> TODO
> > > > is).
> > >
> > > I am not aware of any other issue at this point. Hannes may know
> about it.
> >
> > Yeap Hannes is aware.
> >
> > I was referring to IO being issued to passive paths (ghost LUNs)
> because
> > scsi_dh isn't yet loaded. Whereby causing the storage backend to
> > trespass unnecessarily. This bouncing (and corresponding IO errors)
> are
> > avoided if the appropriate scsi_dh module is always loaded before the
> > storage driver (e.g. lpfc or qla2xxx).
>
> I have reviewed the scsi_dh match() changes (those from Hannes that are
> already upstream and the 4 patches from Babu to complete match() for
> other device handlers and the scsi_dh cleanup).
>
> Hannes, in your cover-letter from the original scsi_dh_alua match
> patchset, here: http://www.spinics.net/lists/linux-scsi/msg54281.html,
> you said:
>
> "In contrast to what we've discussed at LinuxTag I have not tried
> to attach the alua device handler directly from scsi_scan.
> Reason is that I need to issue SCSI commands during activation,
> which means I would have to attach it from near the end of
> scsi_add_lun(), at which point the device_handler would be attached
> via the current method anyway. So I fail to see the gain here."
>
> I haven't picked through the scsi_dh/scsi code enough to know what "the
> current method" is (but I'm reviewing the code now). That said, a
> quick
> recap of what you feel the relevant highlights are would be
> appreciated.
>
> But I thought the issue we discussed at LinuxTag was: how do we
> autoload
> the scsi_dh module(s) so that the device handler is even available for
> attachment?
>
>
> Babu, you said that your patchset to implement match() for rdac
> resolved
> the problem of the device handler not attaching properly:
> http://www.redhat.com/archives/dm-devel/2011-November/msg00032.html
>
> But that is only the case if scsi_dh_rdac has already been loaded early
> by the initramfs right?

That is correct. I had included the handler in initramfs.

>
> Given the updated scsi_dh match code: should it be safe for the
> initramfs to just load all scsi_dh modules (and ALUA will be preferred
> if TPGS is set)?

Yes, it would be great..

>
> Does it make sense to re-visit Peter Jones' modalias code to autoload
> scsi_dh in kernel rather than relying on adhoc initramfs code to know
> to
> load the modules?

I don’t have complete understanding that. Can't comment.

>
> Mike

--
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 09:30 AM.

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