[PATCH 0/3] scsi: Add Hyper-V logical block provisioning quirks

KY Srinivasan kys at microsoft.com
Tue Oct 21 18:30:30 UTC 2014



> -----Original Message-----
> From: Sitsofe Wheeler [mailto:sitsofe at gmail.com]
> Sent: Monday, October 20, 2014 9:46 PM
> To: KY Srinivasan
> Cc: Jeff Leung; James Bottomley; Christoph Hellwig; Haiyang Zhang; Christoph
> Hellwig; Hannes Reinecke; linux-scsi at vger.kernel.org; linux-
> kernel at vger.kernel.org; devel at linuxdriverproject.org
> Subject: Re: [PATCH 0/3] scsi: Add Hyper-V logical block provisioning quirks
> 
> On Sun, Oct 12, 2014 at 01:21:01AM +0000, KY Srinivasan wrote:
> >
> > > -----Original Message-----
> > > From: Jeff Leung [mailto:jleung at v10networks.ca]
> > > Sent: Saturday, October 11, 2014 1:22 PM
> > >
> > > > On the current release of Windows (windows 10), we are advertising
> > > > SPC3 compliance.
> > > > We are ok with declaring compliance to SPC3 in our drivers.
> > > If you are going to declare SPC3 compliance in the drivers, are you
> > > going to put in checks to ensure that SPC-3 compliance doesn't get
> > > accidentally enabled for hypervisors below Win10?
> > >
> > > I do know for a fact that Ubuntu's kernels already force SPC3
> > > compliance to enable specific features such as TRIM on earlier
> > > versions of Hyper-V (Namely Hyper-V 2012 and 2012 R2).
> > You are right; Ubuntu has been carrying a patch  that was doing just
> > this and this has been working without any issues on many earlier
> > versions of Windows. (2012 and 2012 R2).  On windows 10 we don't need
> > any changes in the Linux driver as the host itself is advertising SPC3
> > compliance. Based on the testing we have done with Ubuntu, we are
> > comfortable picking up that patch.
> 
> OK this seems to be the patch currently carried by Ubuntu:
> 
> From ff2c5fa3fa9adf0b919b9425e71a8ba044c31a7d Mon Sep 17 00:00:00 2001
> From: Andy Whitcroft <apw at canonical.com>
> Date: Fri, 13 Sep 2013 17:49:16 +0100
> Subject: [PATCH] scsi: hyper-v storsvc switch up to SPC-3
> 
> Suggested-By: James Bottomley
> <James.Bottomley at HansenPartnership.com>
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
>  drivers/scsi/storvsc_drv.c |    8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index
> 9969fa1..3903c8a 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -1441,6 +1441,14 @@ static int storvsc_device_configure(struct
> scsi_device *sdevice)
> 
>  	sdevice->no_write_same = 1;
> 
> +	/*
> +	 * hyper-v lies about its capabilities indicating it is only SPC-2
> +	 * compliant, but actually implements the core SPC-3 features.
> +	 * If we pretend to be SPC-3, we send RC16 which activates trim and
> +	 * will query the appropriate VPD pages to enable trim.
> +	 */
> +	sdevice->scsi_level = SCSI_SPC_3;
> +
>  	return 0;
>  }
> 
> --
> 1.7.9.5
> 
> (Downloaded from
> http://kernel.ubuntu.com/git?p=jsalisbury/stable/trusty/ubuntu-
> trusty.git;a=patch;h=ff2c5fa3fa9adf0b919b9425e71a8ba044c31a7d
> ).
> 
> I think it's unwise to override the scsi_level at this particular point because
> you are going to do it for ALL Hyper-V "disks" (perhaps all Hyper-V SCSI
> devices?)...

I agree with you. I was only referring virtual hard disks (VHDs) being presented to the guest and
not pass-through devices. Furthermore, we would fix up the scsi conformance level based on the
version of the host we are running on.

Regards,

K. Y
> 
> Here's the SCSI inquiry information reported by a USB 2 hard disk being
> passed passed-through by one of my 2012 R2 hosts:
> 
> # sg_inq /dev/sdc
> standard INQUIRY:
>   PQual=0  Device_type=0  RMB=0  version=0x02  [SCSI-2]
>   [AERC=0]  [TrmTsk=0]  NormACA=0  HiSUP=0  Resp_data_format=1
>   SCCS=0  ACC=0  TPGS=0  3PC=0  Protect=0  [BQue=0]
>   EncServ=0  MultiP=0  [MChngr=0]  [ACKREQQ=0]  Addr16=0
>   [RelAdr=0]  WBus16=0  Sync=0  Linked=0  [TranDis=0]  CmdQue=0
>     length=36 (0x24)   Peripheral device type: disk
>  Vendor identification: MDT MD50
>  Product identification: 00AAKS-00TMA0
>  Product revision level:
> 
> Is it OK to replace a scsi_level of SCSI-2 with SCSI_SPC_3? Additionally is it
> also OK to force SCSI_SPC_3 on Hyper-V 2008?
> 
> > > > NryزXvؖ){nlj{zX}zj:v zZzf~zwڢ)jyA
> > > >
> > > > i
> > N?????r??y????b?X??ǧv?^?)޺{.n?+????{????zX????ܨ}???Ơz?&j:+v???
> ????zZ+??+zf???h???~????i???z?
?w?????????&?)ߢf??^jǫy?m??@A?a??
> ?
> 
> 0??h???i
> 
> ^^^ Where do these characters come from? I've occasionally seen them on
> emails from other Microsoft folks posting to LKML too...
> 
> --
> Sitsofe | http://sucs.org/~sits/


More information about the devel mailing list