diff mbox

[1/1] scsi: storvsc: Support manual scan of FC hosts on Hyper-V

Message ID 1457819568-6586-1-git-send-email-kys@microsoft.com (mailing list archive)
State Changes Requested, archived
Headers show

Commit Message

KY Srinivasan March 12, 2016, 9:52 p.m. UTC
The default user scan function associated with FC (fc_user_scan)
is not suitable for FC hosts on Hyper-V since we don't have
an rport associated with FC host on Hyper-V . Set it to NULL so we can
support manual scan of FC targets on Hyper-V.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Tested-by: Long Li <longli@microsoft.com>
Reviewed-by: Long Li <longli@microsoft.com>
---
 drivers/scsi/storvsc_drv.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

Comments

Christoph Hellwig March 15, 2016, 1:40 p.m. UTC | #1
On Sat, Mar 12, 2016 at 01:52:48PM -0800, K. Y. Srinivasan wrote:
> The default user scan function associated with FC (fc_user_scan)
> is not suitable for FC hosts on Hyper-V since we don't have
> an rport associated with FC host on Hyper-V . Set it to NULL so we can
> support manual scan of FC targets on Hyper-V.

This isn't really how the FC transport class in intended to work, but
neither is the eh_timed_out (which I haven't seen in my tree yet).

It sounds like storvsc simply shouldn't attach to the FC transport
if it doesn't actually look like a FC HBA.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
KY Srinivasan March 15, 2016, 2:27 p.m. UTC | #2
> -----Original Message-----
> From: Christoph Hellwig [mailto:hch@infradead.org]
> Sent: Tuesday, March 15, 2016 6:40 AM
> To: KY Srinivasan <kys@microsoft.com>
> Cc: gregkh@linuxfoundation.org; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org; ohering@suse.com;
> jbottomley@parallels.com; hch@infradead.org; linux-scsi@vger.kernel.org;
> apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com;
> martin.petersen@oracle.com; hare@suse.de
> Subject: Re: [PATCH 1/1] scsi: storvsc: Support manual scan of FC hosts on
> Hyper-V
> 
> On Sat, Mar 12, 2016 at 01:52:48PM -0800, K. Y. Srinivasan wrote:
> > The default user scan function associated with FC (fc_user_scan)
> > is not suitable for FC hosts on Hyper-V since we don't have
> > an rport associated with FC host on Hyper-V . Set it to NULL so we can
> > support manual scan of FC targets on Hyper-V.
> 
> This isn't really how the FC transport class in intended to work, but
> neither is the eh_timed_out (which I haven't seen in my tree yet).
> 
> It sounds like storvsc simply shouldn't attach to the FC transport
> if it doesn't actually look like a FC HBA.

Till recently I had not. However, we do support publishing wwn in the guest and
some customers wanted this. That is the reason I am attaching FC transport and working
through the issues. With this change, I now have wwn names published in the guest and I can
also issue manual scan.


Regards,

K. Y 
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin K. Petersen March 15, 2016, 9:25 p.m. UTC | #3
>>>>> "KY" == KY Srinivasan <kys@microsoft.com> writes:

KY> Till recently I had not. However, we do support publishing wwn in
KY> the guest and some customers wanted this. That is the reason I am
KY> attaching FC transport and working through the issues. With this
KY> change, I now have wwn names published in the guest and I can also
KY> issue manual scan.

Why does it have to look like FC? Will a device identification VPD page
not do the trick?
KY Srinivasan March 15, 2016, 11:01 p.m. UTC | #4
> -----Original Message-----
> From: Martin K. Petersen [mailto:martin.petersen@oracle.com]
> Sent: Tuesday, March 15, 2016 2:25 PM
> To: KY Srinivasan <kys@microsoft.com>
> Cc: Christoph Hellwig <hch@infradead.org>; gregkh@linuxfoundation.org;
> linux-kernel@vger.kernel.org; devel@linuxdriverproject.org;
> ohering@suse.com; jbottomley@parallels.com; linux-scsi@vger.kernel.org;
> apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com;
> martin.petersen@oracle.com; hare@suse.de
> Subject: Re: [PATCH 1/1] scsi: storvsc: Support manual scan of FC hosts on
> Hyper-V
> 
> >>>>> "KY" == KY Srinivasan <kys@microsoft.com> writes:
> 
> KY> Till recently I had not. However, we do support publishing wwn in
> KY> the guest and some customers wanted this. That is the reason I am
> KY> attaching FC transport and working through the issues. With this
> KY> change, I now have wwn names published in the guest and I can also
> KY> issue manual scan.
> 
> Why does it have to look like FC? Will a device identification VPD page
> not do the trick?

How would I get the sysfs files under fc_host if I don't use the FC transport.
The customer scripts expect these sysfs files.

Regards,

K. Y
> 
> --
> Martin K. Petersen	Oracle Linux Engineering
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin K. Petersen March 16, 2016, 10:34 p.m. UTC | #5
>>>>> "KY" == KY Srinivasan <kys@microsoft.com> writes:

KY> How would I get the sysfs files under fc_host if I don't use the FC
KY> transport.  The customer scripts expect these sysfs files.

Right, but I was interested in finding out why they need those
files. And whether an alternative to the FC transport would be a better
solution.
James Bottomley March 16, 2016, 11:07 p.m. UTC | #6
On Wed, 2016-03-16 at 18:34 -0400, Martin K. Petersen wrote:
> > > > > > "KY" == KY Srinivasan <kys@microsoft.com> writes:
> 
> KY> How would I get the sysfs files under fc_host if I don't use the
> FC
> KY> transport.  The customer scripts expect these sysfs files.
> 
> Right, but I was interested in finding out why they need those
> files. And whether an alternative to the FC transport would be a 
> better solution.

If it's just the wwn file (or a set of other values), we might be able
to separate that bit out of the FC transport class so you can use it
independently ... do you have a full list of the files being used?

Thanks,

James

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
KY Srinivasan March 16, 2016, 11:15 p.m. UTC | #7
> -----Original Message-----

> From: James Bottomley [mailto:James.Bottomley@HansenPartnership.com]

> Sent: Wednesday, March 16, 2016 4:08 PM

> To: Martin K. Petersen <martin.petersen@oracle.com>; KY Srinivasan

> <kys@microsoft.com>

> Cc: Christoph Hellwig <hch@infradead.org>; gregkh@linuxfoundation.org;

> linux-kernel@vger.kernel.org; devel@linuxdriverproject.org;

> ohering@suse.com; jbottomley@parallels.com; linux-scsi@vger.kernel.org;

> apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com;

> hare@suse.de

> Subject: Re: [PATCH 1/1] scsi: storvsc: Support manual scan of FC hosts on

> Hyper-V

> 

> On Wed, 2016-03-16 at 18:34 -0400, Martin K. Petersen wrote:

> > > > > > > "KY" == KY Srinivasan <kys@microsoft.com> writes:

> >

> > KY> How would I get the sysfs files under fc_host if I don't use the

> > FC

> > KY> transport.  The customer scripts expect these sysfs files.

> >

> > Right, but I was interested in finding out why they need those

> > files. And whether an alternative to the FC transport would be a

> > better solution.

> 

> If it's just the wwn file (or a set of other values), we might be able

> to separate that bit out of the FC transport class so you can use it

> independently ... do you have a full list of the files being used?


Wwn files are what we can support on Hyper-V and that is what I want to support
(to address customer requirements).

Regards,

K. Y
James Bottomley March 16, 2016, 11:40 p.m. UTC | #8
On Wed, 2016-03-16 at 23:15 +0000, KY Srinivasan wrote:
> 
> > -----Original Message-----
> > From: James Bottomley [mailto:James.Bottomley@HansenPartnership.com
> > ]
> > Sent: Wednesday, March 16, 2016 4:08 PM
> > To: Martin K. Petersen <martin.petersen@oracle.com>; KY Srinivasan
> > <kys@microsoft.com>
> > Cc: Christoph Hellwig <hch@infradead.org>; 
> > gregkh@linuxfoundation.org;
> > linux-kernel@vger.kernel.org; devel@linuxdriverproject.org;
> > ohering@suse.com; jbottomley@parallels.com; 
> > linux-scsi@vger.kernel.org;
> > apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com;
> > hare@suse.de
> > Subject: Re: [PATCH 1/1] scsi: storvsc: Support manual scan of FC
> > hosts on
> > Hyper-V
> > 
> > On Wed, 2016-03-16 at 18:34 -0400, Martin K. Petersen wrote:
> > > > > > > > "KY" == KY Srinivasan <kys@microsoft.com> writes:
> > > 
> > > KY> How would I get the sysfs files under fc_host if I don't use
> > > the
> > > FC
> > > KY> transport.  The customer scripts expect these sysfs files.
> > > 
> > > Right, but I was interested in finding out why they need those
> > > files. And whether an alternative to the FC transport would be a
> > > better solution.
> > 
> > If it's just the wwn file (or a set of other values), we might be
> > able
> > to separate that bit out of the FC transport class so you can use
> > it
> > independently ... do you have a full list of the files being used?
> 
> Wwn files are what we can support on Hyper-V and that is what I want 
> to support (to address customer requirements).

There is no wwn file.  These are all the possible attributes they could
use; which one(s) do you want:

	/*
	 * Setup SCSI Host Attributes.
	 */
	SETUP_HOST_ATTRIBUTE_RD(node_name);
	SETUP_HOST_ATTRIBUTE_RD(port_name);
	SETUP_HOST_ATTRIBUTE_RD(permanent_port_name);
	SETUP_HOST_ATTRIBUTE_RD(supported_classes);
	SETUP_HOST_ATTRIBUTE_RD(supported_fc4s);
	SETUP_HOST_ATTRIBUTE_RD(supported_speeds);
	SETUP_HOST_ATTRIBUTE_RD(maxframe_size);
	if (ft->vport_create) {
		SETUP_HOST_ATTRIBUTE_RD_NS(max_npiv_vports);
		SETUP_HOST_ATTRIBUTE_RD_NS(npiv_vports_inuse);
	}
	SETUP_HOST_ATTRIBUTE_RD(serial_number);
	SETUP_HOST_ATTRIBUTE_RD(manufacturer);
	SETUP_HOST_ATTRIBUTE_RD(model);
	SETUP_HOST_ATTRIBUTE_RD(model_description);
	SETUP_HOST_ATTRIBUTE_RD(hardware_version);
	SETUP_HOST_ATTRIBUTE_RD(driver_version);
	SETUP_HOST_ATTRIBUTE_RD(firmware_version);
	SETUP_HOST_ATTRIBUTE_RD(optionrom_version);

	SETUP_HOST_ATTRIBUTE_RD(port_id);
	SETUP_HOST_ATTRIBUTE_RD(port_type);
	SETUP_HOST_ATTRIBUTE_RD(port_state);
	SETUP_HOST_ATTRIBUTE_RD(active_fc4s);
	SETUP_HOST_ATTRIBUTE_RD(speed);
	SETUP_HOST_ATTRIBUTE_RD(fabric_name);
	SETUP_HOST_ATTRIBUTE_RD(symbolic_name);
	SETUP_HOST_ATTRIBUTE_RW(system_hostname);

	/* Transport-managed attributes */
	SETUP_PRIVATE_HOST_ATTRIBUTE_RW(dev_loss_tmo);
	SETUP_PRIVATE_HOST_ATTRIBUTE_RW(tgtid_bind_type);
	if (ft->issue_fc_host_lip)
		SETUP_PRIVATE_HOST_ATTRIBUTE_RW(issue_lip);
	if (ft->vport_create)
		SETUP_PRIVATE_HOST_ATTRIBUTE_RW(vport_create);
	if (ft->vport_delete)
		SETUP_PRIVATE_HOST_ATTRIBUTE_RW(vport_delete);
	/*
	 * Setup Remote Port Attributes.
	 */
	count=0;
	SETUP_RPORT_ATTRIBUTE_RD(maxframe_size);
	SETUP_RPORT_ATTRIBUTE_RD(supported_classes);
	SETUP_RPORT_ATTRIBUTE_RW(dev_loss_tmo);
	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(node_name);
	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_name);
	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_id);
	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(roles);
	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_state);
	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(scsi_target_id);
	SETUP_PRIVATE_RPORT_ATTRIBUTE_RW(fast_io_fail_tmo);

	/*
	 * Setup Virtual Port Attributes.
	 */
	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(vport_state);
	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(vport_last_state);
	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(node_name);
	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(port_name);
	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(roles);
	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(vport_type);
	SETUP_VPORT_ATTRIBUTE_RW(symbolic_name);
	SETUP_VPORT_ATTRIBUTE_WR(vport_delete);
	SETUP_VPORT_ATTRIBUTE_WR(vport_disable);

I'm assuming it's host and rport port_id?

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
KY Srinivasan March 17, 2016, 12:01 a.m. UTC | #9
> -----Original Message-----

> From: James Bottomley [mailto:James.Bottomley@HansenPartnership.com]

> Sent: Wednesday, March 16, 2016 4:41 PM

> To: KY Srinivasan <kys@microsoft.com>; Martin K. Petersen

> <martin.petersen@oracle.com>

> Cc: Christoph Hellwig <hch@infradead.org>; gregkh@linuxfoundation.org;

> linux-kernel@vger.kernel.org; devel@linuxdriverproject.org;

> ohering@suse.com; jbottomley@parallels.com; linux-scsi@vger.kernel.org;

> apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com;

> hare@suse.de

> Subject: Re: [PATCH 1/1] scsi: storvsc: Support manual scan of FC hosts on

> Hyper-V

> 

> On Wed, 2016-03-16 at 23:15 +0000, KY Srinivasan wrote:

> >

> > > -----Original Message-----

> > > From: James Bottomley

> [mailto:James.Bottomley@HansenPartnership.com

> > > ]

> > > Sent: Wednesday, March 16, 2016 4:08 PM

> > > To: Martin K. Petersen <martin.petersen@oracle.com>; KY Srinivasan

> > > <kys@microsoft.com>

> > > Cc: Christoph Hellwig <hch@infradead.org>;

> > > gregkh@linuxfoundation.org;

> > > linux-kernel@vger.kernel.org; devel@linuxdriverproject.org;

> > > ohering@suse.com; jbottomley@parallels.com;

> > > linux-scsi@vger.kernel.org;

> > > apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com;

> > > hare@suse.de

> > > Subject: Re: [PATCH 1/1] scsi: storvsc: Support manual scan of FC

> > > hosts on

> > > Hyper-V

> > >

> > > On Wed, 2016-03-16 at 18:34 -0400, Martin K. Petersen wrote:

> > > > > > > > > "KY" == KY Srinivasan <kys@microsoft.com> writes:

> > > >

> > > > KY> How would I get the sysfs files under fc_host if I don't use

> > > > the

> > > > FC

> > > > KY> transport.  The customer scripts expect these sysfs files.

> > > >

> > > > Right, but I was interested in finding out why they need those

> > > > files. And whether an alternative to the FC transport would be a

> > > > better solution.

> > >

> > > If it's just the wwn file (or a set of other values), we might be

> > > able

> > > to separate that bit out of the FC transport class so you can use

> > > it

> > > independently ... do you have a full list of the files being used?

> >

> > Wwn files are what we can support on Hyper-V and that is what I want

> > to support (to address customer requirements).

> 

> There is no wwn file.  These are all the possible attributes they could

> use; which one(s) do you want:

> 

> 	/*

> 	 * Setup SCSI Host Attributes.

> 	 */

> 	SETUP_HOST_ATTRIBUTE_RD(node_name);

> 	SETUP_HOST_ATTRIBUTE_RD(port_name);

> 	SETUP_HOST_ATTRIBUTE_RD(permanent_port_name);

> 	SETUP_HOST_ATTRIBUTE_RD(supported_classes);

> 	SETUP_HOST_ATTRIBUTE_RD(supported_fc4s);

> 	SETUP_HOST_ATTRIBUTE_RD(supported_speeds);

> 	SETUP_HOST_ATTRIBUTE_RD(maxframe_size);

> 	if (ft->vport_create) {

> 		SETUP_HOST_ATTRIBUTE_RD_NS(max_npiv_vports);

> 		SETUP_HOST_ATTRIBUTE_RD_NS(npiv_vports_inuse);

> 	}

> 	SETUP_HOST_ATTRIBUTE_RD(serial_number);

> 	SETUP_HOST_ATTRIBUTE_RD(manufacturer);

> 	SETUP_HOST_ATTRIBUTE_RD(model);

> 	SETUP_HOST_ATTRIBUTE_RD(model_description);

> 	SETUP_HOST_ATTRIBUTE_RD(hardware_version);

> 	SETUP_HOST_ATTRIBUTE_RD(driver_version);

> 	SETUP_HOST_ATTRIBUTE_RD(firmware_version);

> 	SETUP_HOST_ATTRIBUTE_RD(optionrom_version);

> 

> 	SETUP_HOST_ATTRIBUTE_RD(port_id);

> 	SETUP_HOST_ATTRIBUTE_RD(port_type);

> 	SETUP_HOST_ATTRIBUTE_RD(port_state);

> 	SETUP_HOST_ATTRIBUTE_RD(active_fc4s);

> 	SETUP_HOST_ATTRIBUTE_RD(speed);

> 	SETUP_HOST_ATTRIBUTE_RD(fabric_name);

> 	SETUP_HOST_ATTRIBUTE_RD(symbolic_name);

> 	SETUP_HOST_ATTRIBUTE_RW(system_hostname);

> 

> 	/* Transport-managed attributes */

> 	SETUP_PRIVATE_HOST_ATTRIBUTE_RW(dev_loss_tmo);

> 	SETUP_PRIVATE_HOST_ATTRIBUTE_RW(tgtid_bind_type);

> 	if (ft->issue_fc_host_lip)

> 		SETUP_PRIVATE_HOST_ATTRIBUTE_RW(issue_lip);

> 	if (ft->vport_create)

> 		SETUP_PRIVATE_HOST_ATTRIBUTE_RW(vport_create);

> 	if (ft->vport_delete)

> 		SETUP_PRIVATE_HOST_ATTRIBUTE_RW(vport_delete);

> 	/*

> 	 * Setup Remote Port Attributes.

> 	 */

> 	count=0;

> 	SETUP_RPORT_ATTRIBUTE_RD(maxframe_size);

> 	SETUP_RPORT_ATTRIBUTE_RD(supported_classes);

> 	SETUP_RPORT_ATTRIBUTE_RW(dev_loss_tmo);

> 	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(node_name);

> 	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_name);

> 	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_id);

> 	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(roles);

> 	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(port_state);

> 	SETUP_PRIVATE_RPORT_ATTRIBUTE_RD(scsi_target_id);

> 	SETUP_PRIVATE_RPORT_ATTRIBUTE_RW(fast_io_fail_tmo);

> 

> 	/*

> 	 * Setup Virtual Port Attributes.

> 	 */

> 	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(vport_state);

> 	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(vport_last_state);

> 	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(node_name);

> 	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(port_name);

> 	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(roles);

> 	SETUP_PRIVATE_VPORT_ATTRIBUTE_RD(vport_type);

> 	SETUP_VPORT_ATTRIBUTE_RW(symbolic_name);

> 	SETUP_VPORT_ATTRIBUTE_WR(vport_delete);

> 	SETUP_VPORT_ATTRIBUTE_WR(vport_disable);

> 

> I'm assuming it's host and rport port_id?


The only attributes I would be interested are:
1) node name
2) port name

Ideally, if this can show under /sys/class/fc_host/hostx/port_name and node_name,
it will be ideal since all user scripts can work.

Regards,

K. Y
diff mbox

Patch

diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 132b168..8aec590 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1776,6 +1776,12 @@  static int __init storvsc_drv_init(void)
 	 * Install Hyper-V specific timeout handler.
 	 */
 	fc_transport_template->eh_timed_out = storvsc_eh_timed_out;
+	/*
+	 * The default user scan function associated with FC (fc_user_scan)
+	 * is not suitable for FC hosts on Hyper-V. Set it to NULL so we can
+	 * support manual scan of FC targets on Hyper-V.
+	 */
+	fc_transport_template->user_scan = NULL;
 #endif
 
 	ret = vmbus_driver_register(&storvsc_drv);