RE: [PATCH v2 0/2] scsi: storvsc: Add support for FC lightweight host.

From: KY Srinivasan
Date: Sat Jan 28 2017 - 20:18:36 EST

> -----Original Message-----
> From: Christoph Hellwig [mailto:hch@xxxxxxxxxxxxx]
> Sent: Thursday, January 26, 2017 6:52 AM
> To: Cathy Avery <cavery@xxxxxxxxxx>
> Cc: KY Srinivasan <kys@xxxxxxxxxxxxx>; hch@xxxxxxxxxxxxx; Haiyang Zhang
> <haiyangz@xxxxxxxxxxxxx>; jejb@xxxxxxxxxxxxxxxxxx;
> martin.petersen@xxxxxxxxxx; dan.carpenter@xxxxxxxxxx;
> devel@xxxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-
> scsi@xxxxxxxxxxxxxxx; famz@xxxxxxxxxx
> Subject: Re: [PATCH v2 0/2] scsi: storvsc: Add support for FC lightweight host.
> On Thu, Jan 26, 2017 at 08:38:58AM -0500, Cathy Avery wrote:
> > Included in the current storvsc driver for Hyper-V is the ability
> > to access luns on an FC fabric via a virtualized fiber channel
> > adapter exposed by the Hyper-V host. This was done to provide an
> > interface for existing customer tools that was more consistent with
> > a conventional FC device. The driver attaches to the FC transport
> > to allow host and port names to be published under
> > /sys/class/fc_host/hostX.
> >
> > A problem arose when attaching to the FC transport. The scsi_scan code
> > attempts to call fc_user_scan which has basically become a no-op
> > due to the virtualized nature of the FC host
> > ( missing rports, vports, etc ). At this point you cannot refresh
> > the scsi bus after mapping or unmapping luns on the SAN without
> > a reboot.
> I don't think a device without rports or vports is a FC device, plain and
> simple. So as far as I'm concerned we should remove the code from storvsc
> that pretends to be FC, and not add it to virtio to start with.
> And again I think leightweight is a very confusing name -
> what exactly is leight or heavy? It's really fake or dummy
> in the current version.

Windows has chosen this model for virtualizing FC devices to the guest -
without rports (or vports). As I noted in my earlier email, James came up with
this notion of a lightweight template almost a year ago. We can certainly pick a
more appropriate name and include better documentation.
> >
> > 2) Removes an original workaround dealing with replacing
> > the eh_timed_out function. Patch 1 will not set the
> > scsi_transport_template.eh_timed_out function directly during
> > lightweight fc_attach_transport(). It instead relies on
> > whatever was indicated as the scsi_host_template timeout handler
> > during scsi_times_out() scsi_error.c. So the workaround is
> > no longer necessary.
> Can you send a patch that gets rid of the transport class timeout handler
> entirely? I think it's simply the wrong layering we have here - the
> driver needs to be in control of timeouts, and if it wants it can
> optionally call into library code in the transport class.

We will address this concern.
> FYI, all the long-term relevant explanation need to go into the patches
> themselves (patch description or code comments), not in the cover
> letter.

We will address this.


K. Y