> -----Original Message----- > From: James Bottomley [mailto:jbottomley@parallels.com] > Sent: Friday, July 25, 2014 10:10 AM > To: KY Srinivasan > Cc: linux-kernel@vger.kernel.org; hch@infradead.org; sitsofe@gmail.com; > devel@linuxdriverproject.org; apw@canonical.com; > martin.petersen@oracle.com; linux-scsi@vger.kernel.org; > ohering@suse.com; gregkh@linuxfoundation.org; jasowang@redhat.com > Subject: Re: [PATCH v2 3/3] [SCSI] Make LBP quirk skip lbpme checks tests > > On Fri, 2014-07-25 at 16:47 +0000, KY Srinivasan wrote: > > > > > -----Original Message----- > > > From: Martin K. Petersen [mailto:martin.petersen@oracle.com] > > > Sent: Thursday, July 24, 2014 8:54 AM > > > To: Sitsofe Wheeler > > > Cc: Martin K. Petersen; Christoph Hellwig; KY Srinivasan; > > > gregkh@linuxfoundation.org; linux-kernel@vger.kernel.org; > > > devel@linuxdriverproject.org; ohering@suse.com; apw@canonical.com; > > > jasowang@redhat.com; jbottomley@parallels.com; linux- > > > scsi@vger.kernel.org > > > Subject: Re: [PATCH v2 3/3] [SCSI] Make LBP quirk skip lbpme checks > > > tests > > > > > > >>>>> "Sitsofe" == Sitsofe Wheeler writes: > > > > > > Sitsofe> So we can see it is really a SATA device that announces > > > Sitsofe> discard correctly and supports discard through WRITE_SAME(16). > > > > > > No, that's the SATA device that announces support for DSM TRIM, and > > > as a result the Linux SATL reports support for WRITE SAME(16) w. the > > > UNMAP bit set and LBPME. > > > > > > Sitsofe> It is the act of passing it through Hyper-V that turned it > > > Sitsofe> into a SCSI device that supports UNMAP (but not > > > Sitsofe> WRITE_SAME(16)), doesn't announce its SCSI conformance > > > Sitsofe> number and doesn't correctly announce which features it > > > Sitsofe> supports. Surely in this case it's reasonable to quirk our way > around the problem? > > > > > > No. That's an issue in Hyper-V that'll you'll have to take up with > > > Microsoft. I don't know what their passthrough limitations are for SCSI- > ATA translation. > > > Maybe K. Y. has some insight into this? > > > > For the pass through case, the host validates the request and passes > > the request to the device. > > However, not all scsi commands are passed through even though the > > device it is being passed through may support the command. WRITE_SAME > > is one such command. Consequently, in the EVPD page, we will set state > > indicating that WRITE_SAME is not supported (even if the device > > supports it). > > I think you haven't appreciated the problem: He's passing a SATA SSD via the > SCSI hyper-v interface. That means that the windows host is doing SCSI<- > >ATA translation. The problem is that the Windows translation layer (SATL) > looks to be incomplete and it's not correctly translating the IDENTIFY bit that > corresponds to TRIM to the correct VPD pages so consequently, Linux won't > send UNMAP commands to the device (to be translated back to TRIM). > > We already know this is a bug in the Windows SATL which needs fixing (if you > could report it and get a fix, that would be great) and that we're not going to > be able to work around this automatically in Linux because the proposed > patch would have us unconditionally try UNMAP for all Hyper-V devices. The > current proposed fix is to enable UNMAP manually via sysfs in the guest boot > scripts, but obviously that means that Hyper-V guests with direct pass > through of SSDs need operator intervention to turn on TRIM. James, Thanks for the clarification. I am talking to the folks in MSFT that develop the native scsi stack on Windows. Hyper-V's back-end driver is not involved in SATL. I will keep you guys posted. Regards, K. Y > > James {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I