On Sun, Oct 12, 2014 at 01:21:01AM +0000, KY Srinivasan wrote: > > > -----Original Message----- > > From: Jeff Leung [mailto:jleung@xxxxxxxxxxxxxx] > > 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@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andy Whitcroft <apw@xxxxxxxxxxxxx> --- 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?)... 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/ _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel