From carolyn.d.foster at intel.com Tue Aug 5 10:03:51 2014 From: carolyn.d.foster at intel.com (Foster, Carolyn D) Date: Tue, 5 Aug 2014 17:03:51 +0000 Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: <5d84f241049a4a258f87ef025e8e790c@BLUPR04MB673.namprd04.prod.outlook.com> References: <5d84f241049a4a258f87ef025e8e790c@BLUPR04MB673.namprd04.prod.outlook.com> Message-ID: Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.gif Type: image/gif Size: 1117 bytes Desc: image002.gif URL: From Uma.Parepalli at skhms.com Tue Aug 5 18:40:12 2014 From: Uma.Parepalli at skhms.com (Uma Parepalli) Date: Wed, 6 Aug 2014 01:40:12 +0000 Subject: [nvmewin] SCSI to NVMe Mapping Message-ID: Hi Amber/Peter/Kevin/Kwok and all, The "NVM Express: SCSI Translation Reference" document doesn't provide a direct mapping for "REQUEST SENSE" but has the following Note: "MODE SELECT(6), MODE SELECT(10), REQUEST SENSE and TEST UNIT READY commands do not map 1-to-1 to NVM Express commands; a device driver should translate as specified in the referenced sections." Could you please explain what would be the above commands are equal to in the NVMe world? I would like to hear from both NVMe forum and Windows Driver world. Attaching the document since I know you (we) are all busy with Flash Memory Summit :) Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: NVM_Express_-_SCSI_Translation_Reference-1_2_03172014.pdf Type: application/pdf Size: 1215812 bytes Desc: NVM_Express_-_SCSI_Translation_Reference-1_2_03172014.pdf URL: From amber.huffman at intel.com Wed Aug 6 12:19:07 2014 From: amber.huffman at intel.com (Huffman, Amber) Date: Wed, 6 Aug 2014 19:19:07 +0000 Subject: [nvmewin] SCSI to NVMe Mapping In-Reply-To: References: Message-ID: Hi Uma, Guy, cc:ed, has been leading our efforts on SCSI to NVMe translation. I'd suggest that you get together with Guy for 15 minutes to discuss and determine whether anything needs to be added to the list of translation enhancements in this area. I expect we'll start looking at some enhancements to the translation document in September, after revision 1.2 is done. Thanks, Amber From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Uma Parepalli Sent: Tuesday, August 5, 2014 6:40 PM To: technical at nvmexpress.org; nvmewin at lists.openfabrics.org; info at nvmexpress.org Subject: [nvmewin] SCSI to NVMe Mapping Hi Amber/Peter/Kevin/Kwok and all, The "NVM Express: SCSI Translation Reference" document doesn't provide a direct mapping for "REQUEST SENSE" but has the following Note: "MODE SELECT(6), MODE SELECT(10), REQUEST SENSE and TEST UNIT READY commands do not map 1-to-1 to NVM Express commands; a device driver should translate as specified in the referenced sections." Could you please explain what would be the above commands are equal to in the NVMe world? I would like to hear from both NVMe forum and Windows Driver world. Attaching the document since I know you (we) are all busy with Flash Memory Summit :) Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From thomas.freeman at hgst.com Thu Aug 7 14:29:07 2014 From: thomas.freeman at hgst.com (Thomas Freeman) Date: Thu, 7 Aug 2014 21:29:07 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Message-ID: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 1117 bytes Desc: image001.gif URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: VS2013WDK81Changes_rev1.zip Type: application/x-zip-compressed Size: 53526 bytes Desc: VS2013WDK81Changes_rev1.zip URL: From Alex.Chang at pmcs.com Fri Aug 8 15:28:18 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Fri, 8 Aug 2014 22:28:18 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: <7276_1407446964_53E3EFB4_7276_5891_1_8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> References: <7276_1407446964_53E3EFB4_7276_5891_1_8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> Message-ID: Hi Tom, Thank you for the fixes. Do you think it'd be possible for you to write up how you set up VS2013, etc., Users then just click the solution file and they can build the binaries without any problems? Thanks, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.gif Type: image/gif Size: 1117 bytes Desc: image002.gif URL: From carolyn.d.foster at intel.com Mon Aug 11 15:21:25 2014 From: carolyn.d.foster at intel.com (Foster, Carolyn D) Date: Mon, 11 Aug 2014 22:21:25 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> References: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> Message-ID: Hi Tom, I verified the fixes for the 32-bit debug builds going to the wrong folder. Everything else seems in order. I approve the patch. Thanks, Carolyn From: Thomas Freeman [mailto:thomas.freeman at hgst.com] Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.gif Type: image/gif Size: 1117 bytes Desc: image002.gif URL: From james.p.freyensee at intel.com Mon Aug 11 15:54:35 2014 From: james.p.freyensee at intel.com (Freyensee, James P) Date: Mon, 11 Aug 2014 22:54:35 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> References: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> Message-ID: <2D98093777D3FD46A36253F35FE9D6939A28AB63@ORSMSX115.amr.corp.intel.com> I was curious to know what are the recommended warning level compile flags for this project for use with WDK8.1. It looks like this .sln uses /W1 and /WX- flags for every configuration from Win7 to Win8.1, correct (though I am using VS2012 to read the .sln)? Up until about March 2014, I was able to compile the nvme code cleanly using /W3 and /WX, targeting both Win7 and Win8 with WDK8. And I believe the code that was causing issues using those flags got recently fixed. If the code has been compiling at a /W3, what was the issue that motivated the flag change? From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.gif Type: image/gif Size: 1117 bytes Desc: image002.gif URL: From Alex.Chang at pmcs.com Mon Aug 11 16:49:19 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Mon, 11 Aug 2014 23:49:19 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: <2D98093777D3FD46A36253F35FE9D6939A28AB63@ORSMSX115.amr.corp.intel.com> References: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> <2D98093777D3FD46A36253F35FE9D6939A28AB63@ORSMSX115.amr.corp.intel.com> Message-ID: Hi Tom, I do notice you configured the warning level as W4 and treating warning as no error, which is the same as current configuration in VS 2012. I had fixed the issues when changing it to W3 and treating warning as error and the fixes will be included in my patch. For the time being, we will just leave it as it is for your patch. What do you think? Thanks, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Freyensee, James P Sent: Monday, August 11, 2014 3:55 PM To: Thomas Freeman; Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I was curious to know what are the recommended warning level compile flags for this project for use with WDK8.1. It looks like this .sln uses /W1 and /WX- flags for every configuration from Win7 to Win8.1, correct (though I am using VS2012 to read the .sln)? Up until about March 2014, I was able to compile the nvme code cleanly using /W3 and /WX, targeting both Win7 and Win8 with WDK8. And I believe the code that was causing issues using those flags got recently fixed. If the code has been compiling at a /W3, what was the issue that motivated the flag change? From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 1117 bytes Desc: image001.gif URL: From cheng.peng at memblaze.com Mon Aug 11 18:32:40 2014 From: cheng.peng at memblaze.com (cheng.peng at memblaze.com) Date: Tue, 12 Aug 2014 09:32:40 +0800 Subject: [nvmewin] nvmewin Digest, Vol 32, Issue 7 References: Message-ID: <201408120932400887680@memblaze.com> How can I find the patch? cheng.peng at memblaze.com From: nvmewin-request Date: 2014-08-12 07:40 To: nvmewin Subject: nvmewin Digest, Vol 32, Issue 7 Send nvmewin mailing list submissions to nvmewin at lists.openfabrics.org To subscribe or unsubscribe via the World Wide Web, visit http://lists.openfabrics.org/mailman/listinfo/nvmewin or, via email, send a message with subject or body 'help' to nvmewin-request at lists.openfabrics.org You can reach the person managing the list at nvmewin-owner at lists.openfabrics.org When replying, please edit your Subject line so it is more specific than "Re: Contents of nvmewin digest..." Today's Topics: 1. Re: Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review (Alex Chang) ---------------------------------------------------------------------- Message: 1 Date: Mon, 11 Aug 2014 23:49:19 +0000 From: Alex Chang To: "Freyensee, James P" , Thomas Freeman , "Foster, Carolyn D" , "nvmewin at lists.openfabrics.org" Subject: Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Message-ID: Content-Type: text/plain; charset="us-ascii" Hi Tom, I do notice you configured the warning level as W4 and treating warning as no error, which is the same as current configuration in VS 2012. I had fixed the issues when changing it to W3 and treating warning as error and the fixes will be included in my patch. For the time being, we will just leave it as it is for your patch. What do you think? Thanks, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Freyensee, James P Sent: Monday, August 11, 2014 3:55 PM To: Thomas Freeman; Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I was curious to know what are the recommended warning level compile flags for this project for use with WDK8.1. It looks like this .sln uses /W1 and /WX- flags for every configuration from Win7 to Win8.1, correct (though I am using VS2012 to read the .sln)? Up until about March 2014, I was able to compile the nvme code cleanly using /W3 and /WX, targeting both Win7 and Win8 with WDK8. And I believe the code that was causing issues using those flags got recently fixed. If the code has been compiling at a /W3, what was the issue that motivated the flag change? From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 1117 bytes Desc: image001.gif URL: ------------------------------ _______________________________________________ nvmewin mailing list nvmewin at lists.openfabrics.org http://lists.openfabrics.org/mailman/listinfo/nvmewin End of nvmewin Digest, Vol 32, Issue 7 ************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Mon Aug 11 18:44:40 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Tue, 12 Aug 2014 01:44:40 +0000 Subject: [nvmewin] nvmewin Digest, Vol 32, Issue 7 In-Reply-To: <201408120932400887680@memblaze.com> References: <201408120932400887680@memblaze.com> Message-ID: Hi Peng, I am still working on it. Hopefully, it will be ready soon and you will be notified when it becomes available from OFA repository. Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of cheng.peng at memblaze.com Sent: Monday, August 11, 2014 6:33 PM To: nvmewin Subject: Re: [nvmewin] nvmewin Digest, Vol 32, Issue 7 How can I find the patch? ________________________________ cheng.peng at memblaze.com From: nvmewin-request Date: 2014-08-12 07:40 To: nvmewin Subject: nvmewin Digest, Vol 32, Issue 7 Send nvmewin mailing list submissions to nvmewin at lists.openfabrics.org To subscribe or unsubscribe via the World Wide Web, visit http://lists.openfabrics.org/mailman/listinfo/nvmewin or, via email, send a message with subject or body 'help' to nvmewin-request at lists.openfabrics.org You can reach the person managing the list at nvmewin-owner at lists.openfabrics.org When replying, please edit your Subject line so it is more specific than "Re: Contents of nvmewin digest..." Today's Topics: 1. Re: Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review (Alex Chang) ---------------------------------------------------------------------- Message: 1 Date: Mon, 11 Aug 2014 23:49:19 +0000 From: Alex Chang > To: "Freyensee, James P" >, Thomas Freeman >, "Foster, Carolyn D" >, "nvmewin at lists.openfabrics.org" > Subject: Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Message-ID: > Content-Type: text/plain; charset="us-ascii" Hi Tom, I do notice you configured the warning level as W4 and treating warning as no error, which is the same as current configuration in VS 2012. I had fixed the issues when changing it to W3 and treating warning as error and the fixes will be included in my patch. For the time being, we will just leave it as it is for your patch. What do you think? Thanks, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Freyensee, James P Sent: Monday, August 11, 2014 3:55 PM To: Thomas Freeman; Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I was curious to know what are the recommended warning level compile flags for this project for use with WDK8.1. It looks like this .sln uses /W1 and /WX- flags for every configuration from Win7 to Win8.1, correct (though I am using VS2012 to read the .sln)? Up until about March 2014, I was able to compile the nvme code cleanly using /W3 and /WX, targeting both Win7 and Win8 with WDK8. And I believe the code that was causing issues using those flags got recently fixed. If the code has been compiling at a /W3, what was the issue that motivated the flag change? From: nvmewin-bounces at lists.openfabrics.org> [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org> Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com> 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org> Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org> [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org> Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com> 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 1117 bytes Desc: image001.gif URL: ------------------------------ _______________________________________________ nvmewin mailing list nvmewin at lists.openfabrics.org http://lists.openfabrics.org/mailman/listinfo/nvmewin End of nvmewin Digest, Vol 32, Issue 7 ************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: From thomas.freeman at hgst.com Tue Aug 12 08:20:01 2014 From: thomas.freeman at hgst.com (Thomas Freeman) Date: Tue, 12 Aug 2014 15:20:01 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: References: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> <2D98093777D3FD46A36253F35FE9D6939A28AB63@ORSMSX115.amr.corp.intel.com> Message-ID: <0b871ddb50f0490ea5116264c8c7d1ec@BLUPR04MB673.namprd04.prod.outlook.com> Alex.... The setting W4/WX- was selected by Visual Studio when converting the VS2012 files. It's fine with me if you want to make the change to W3 as part of your upcoming patch. Thanks, Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Monday, August 11, 2014 6:49 PM To: Freyensee, James P; Thomas Freeman; Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I do notice you configured the warning level as W4 and treating warning as no error, which is the same as current configuration in VS 2012. I had fixed the issues when changing it to W3 and treating warning as error and the fixes will be included in my patch. For the time being, we will just leave it as it is for your patch. What do you think? Thanks, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Freyensee, James P Sent: Monday, August 11, 2014 3:55 PM To: Thomas Freeman; Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I was curious to know what are the recommended warning level compile flags for this project for use with WDK8.1. It looks like this .sln uses /W1 and /WX- flags for every configuration from Win7 to Win8.1, correct (though I am using VS2012 to read the .sln)? Up until about March 2014, I was able to compile the nvme code cleanly using /W3 and /WX, targeting both Win7 and Win8 with WDK8. And I believe the code that was causing issues using those flags got recently fixed. If the code has been compiling at a /W3, what was the issue that motivated the flag change? From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.gif Type: image/gif Size: 1117 bytes Desc: image002.gif URL: From thomas.freeman at hgst.com Tue Aug 12 08:33:41 2014 From: thomas.freeman at hgst.com (Thomas Freeman) Date: Tue, 12 Aug 2014 15:33:41 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: References: <7276_1407446964_53E3EFB4_7276_5891_1_8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> Message-ID: <4cd5fbae418645578baddc15610419b8@BLUPR04MB673.namprd04.prod.outlook.com> Hi Alex, It's been a while since I converted to VS2013, but if I recall it was a pretty simple transition I downloaded and installed VS2013 and WDK 8.1 update from the MSDN website (installing VS2013 first) Using Visual Studio 2013, I opened the VS2012 version of the solution. At that point Visual Studio prompted me to allow the conversion of my project files to VS2013. The solution/project files I've shipped are already converted to VS2013 - so the user needs to just click on the nvme.sln, select the appropriate configuration (e.g. Win7 Release) and build. Here is a link to some more detailed info on the Upgrade of C++ Project files http://msdn.microsoft.com/en-us/library/hh690665.aspx Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Friday, August 8, 2014 5:28 PM To: Thomas Freeman; Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, Thank you for the fixes. Do you think it'd be possible for you to write up how you set up VS2013, etc., Users then just click the solution file and they can build the binaries without any problems? Thanks, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 1117 bytes Desc: image001.gif URL: From Alex.Chang at pmcs.com Tue Aug 12 08:42:29 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Tue, 12 Aug 2014 15:42:29 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: <4cd5fbae418645578baddc15610419b8@BLUPR04MB673.namprd04.prod.outlook.com> References: <7276_1407446964_53E3EFB4_7276_5891_1_8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> <4cd5fbae418645578baddc15610419b8@BLUPR04MB673.namprd04.prod.outlook.com> Message-ID: Hi Tom, Thank you for the details. I will include them when releasing 1.4. Regards, Alex From: Thomas Freeman [mailto:thomas.freeman at hgst.com] Sent: Tuesday, August 12, 2014 8:34 AM To: Alex Chang; Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Alex, It's been a while since I converted to VS2013, but if I recall it was a pretty simple transition I downloaded and installed VS2013 and WDK 8.1 update from the MSDN website (installing VS2013 first) Using Visual Studio 2013, I opened the VS2012 version of the solution. At that point Visual Studio prompted me to allow the conversion of my project files to VS2013. The solution/project files I've shipped are already converted to VS2013 - so the user needs to just click on the nvme.sln, select the appropriate configuration (e.g. Win7 Release) and build. Here is a link to some more detailed info on the Upgrade of C++ Project files http://msdn.microsoft.com/en-us/library/hh690665.aspx Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Friday, August 8, 2014 5:28 PM To: Thomas Freeman; Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, Thank you for the fixes. Do you think it'd be possible for you to write up how you set up VS2013, etc., Users then just click the solution file and they can build the binaries without any problems? Thanks, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin I've attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won't be addressing Carolyn's first request to re-structure the directories. The password for the attached file is "hgst1234" Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don't have a similar Win32 folder. This isn't a new issue, so if it's not something you want to fix that's fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I've attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is "hgst1234" By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.gif Type: image/gif Size: 1117 bytes Desc: image002.gif URL: From mikeb at bustrace.com Tue Aug 12 11:22:04 2014 From: mikeb at bustrace.com (Mike Berhan) Date: Tue, 12 Aug 2014 12:22:04 -0600 Subject: [nvmewin] PT_IOCTL Data Buffer Length(s) Clarification Request Message-ID: <0c3801cfb65a$519eb0a0$f4dc11e0$@bustrace.com> In reviewing the PT_IOCTL specification, there are three buffer lengths in the NVME_PASS_THROUGH_IOCTL structure: Field Description DWORD DataBufferLen; Transfer byte length, including Metadata, starting at DataBuffer DWORD MetaDataLen; Set to 0 if not supported or interleaved with data DWORD ReturnBufferLen; Returned byte length from device to host, including at least the length of this structure, and data if any. Which of these fields are applicable for inbound, outbound, or bidirectional transfers? Which fields are updated, if any, upon command completion? The MetaDataLen is not used anywhere in the source code. The other issue I'm finding is in reporting the actual amount of data transferred. For example, Intel provided sample source code to query the IDENTIFY page. In that code, it leaves DataBufferLen and MetaDataLen empty, and sets the return buffer length as: pMyIoctl->Direction = NVME_FROM_DEV_TO_HOST; pMyIoctl->ReturnBufferLen = sizeof(ADMIN_IDENTIFY_CONTROLLER) + sizeof(NVME_PASS_THROUGH_IOCTL); The ReturnBufferLen would be more technically accurate if one byte was subtracted since UCHAR DataBuffer[1] is at the end of the NVME_PASS_THROUGH_IOCTL structure. Nevertheless, this is a good example as the ReturnBufferLen is one byte larger than what will actually be transmitted by the device/miniport. Sizeof(NVME_PASS_THROUGH_IOCTL) is 99h so adding the size of the IDENTIFY page (1000h) gets you 1099h which is what is submitted in ReturnBufferLen. I expected the ReturnBufferLen to be set to 1098h by the miniport driver because of the one byte padding issue noted above. This would more accurately notify the submitter of how many bytes were actually transferred. Would this be considered a minor miniport bug or does the specification not allow for underrun reporting? Perhaps clarifying the usage of these three buffer lengths on input, and output, for the various data direction types, would help clear up my confusion. Thank you in advance. Mike Berhan busTRACE Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: From mikeb at bustrace.com Wed Aug 13 09:39:40 2014 From: mikeb at bustrace.com (Mike Berhan) Date: Wed, 13 Aug 2014 10:39:40 -0600 Subject: [nvmewin] IOCTL_SCSI_MINIPORT_IDENTIFY -> NVMeBuildIdentify() Message-ID: <0e4b01cfb715$2de592d0$89b0b870$@bustrace.com> The driver's attempt to map NVMe data to an ATA Identify structure is incorrect in the NVMeBuildIdentify() routine. I see multiple issues including: 1. The driver is copying an NVMe ASCII string into an ATA String without doing the required byte swapping 2. The Checksum Validity Indicator (i.e. Word 255 - Bits 7:0) is not being set to A5h 3. The Checksum (i.e. Word 255 - Bits 15:8) is not being set to the two's complement of the sum of the previous bytes I have attached the required source code changes, as well as a DIFF file, that corrects these issues if you want to incorporate them into the 1.4 driver. Why is the miniport driver processing these SCSIDISK IOCTLs? What issue does it solve? Microsoft's NVMe driver does not appear to process these requests. Mike Berhan busTRACE Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: NVMeBuildIdentify Diff.zip Type: application/x-zip-compressed Size: 37691 bytes Desc: not available URL: From Alex.Chang at pmcs.com Wed Aug 13 10:49:36 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Wed, 13 Aug 2014 17:49:36 +0000 Subject: [nvmewin] IOCTL_SCSI_MINIPORT_IDENTIFY -> NVMeBuildIdentify() In-Reply-To: <0e4b01cfb715$2de592d0$89b0b870$@bustrace.com> References: <0e4b01cfb715$2de592d0$89b0b870$@bustrace.com> Message-ID: Thank you very much, Mike, for pointing it out. The codes was added by Paul Luse from Intel. Hi Paul, Could you please answer Mike's questions? Thanks, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Mike Berhan Sent: Wednesday, August 13, 2014 9:40 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] IOCTL_SCSI_MINIPORT_IDENTIFY -> NVMeBuildIdentify() The driver's attempt to map NVMe data to an ATA Identify structure is incorrect in the NVMeBuildIdentify() routine. I see multiple issues including: 1. The driver is copying an NVMe ASCII string into an ATA String without doing the required byte swapping 2. The Checksum Validity Indicator (i.e. Word 255 - Bits 7:0) is not being set to A5h 3. The Checksum (i.e. Word 255 - Bits 15:8) is not being set to the two's complement of the sum of the previous bytes I have attached the required source code changes, as well as a DIFF file, that corrects these issues if you want to incorporate them into the 1.4 driver. Why is the miniport driver processing these SCSIDISK IOCTLs? What issue does it solve? Microsoft's NVMe driver does not appear to process these requests. Mike Berhan busTRACE Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: From rick.knoblaugh at avagotech.com Tue Aug 12 11:10:48 2014 From: rick.knoblaugh at avagotech.com (Rick Knoblaugh) Date: Tue, 12 Aug 2014 11:10:48 -0700 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: References: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> Message-ID: <086f2a8f28bf686fc6014781f165a350@mail.gmail.com> Hi Tom, We approve patch as well. Greatly appreciate it. Thanks, -Rick *From:* nvmewin-bounces at lists.openfabrics.org [mailto: nvmewin-bounces at lists.openfabrics.org] *On Behalf Of *Foster, Carolyn D *Sent:* Monday, August 11, 2014 3:21 PM *To:* Thomas Freeman; nvmewin at lists.openfabrics.org *Subject:* Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I verified the fixes for the 32-bit debug builds going to the wrong folder. Everything else seems in order. I approve the patch. Thanks, Carolyn *From:* Thomas Freeman [mailto:thomas.freeman at hgst.com ] *Sent:* Thursday, August 07, 2014 2:29 PM *To:* Foster, Carolyn D; nvmewin at lists.openfabrics.org *Subject:* Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I’ve attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won’t be addressing Carolyn’s first request to re-structure the directories. The password for the attached file is “hgst1234” Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 *From:* Foster, Carolyn D [mailto:carolyn.d.foster at intel.com ] *Sent:* Tuesday, August 5, 2014 12:04 PM *To:* Thomas Freeman; nvmewin at lists.openfabrics.org *Subject:* RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don’t have a similar Win32 folder. This isn’t a new issue, so if it’s not something you want to fix that’s fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn *From:* nvmewin-bounces at lists.openfabrics.org [ mailto:nvmewin-bounces at lists.openfabrics.org ] *On Behalf Of *Thomas Freeman *Sent:* Saturday, July 26, 2014 12:34 PM *To:* nvmewin at lists.openfabrics.org *Subject:* [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I’ve attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is “hgst1234” By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 1117 bytes Desc: not available URL: From Alex.Chang at pmcs.com Wed Aug 13 11:38:33 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Wed, 13 Aug 2014 18:38:33 +0000 Subject: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review In-Reply-To: <086f2a8f28bf686fc6014781f165a350@mail.gmail.com> References: <8c9a40b935cc4b099eccd417624c27fa@BLUPR04MB673.namprd04.prod.outlook.com> <086f2a8f28bf686fc6014781f165a350@mail.gmail.com> Message-ID: Thank you, Rick and Carolyn. I will push the patch shortly. Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Rick Knoblaugh Sent: Tuesday, August 12, 2014 11:11 AM To: Foster, Carolyn D; Thomas Freeman; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review [cid:image001.gif at 01CFB6EB.15C22AD0] Hi Tom, We approve patch as well. Greatly appreciate it. Thanks, -Rick From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Foster, Carolyn D Sent: Monday, August 11, 2014 3:21 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I verified the fixes for the 32-bit debug builds going to the wrong folder. Everything else seems in order. I approve the patch. Thanks, Carolyn From: Thomas Freeman [mailto:thomas.freeman at hgst.com] Sent: Thursday, August 07, 2014 2:29 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: Re-submit of Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I’ve attached my new file with the changes to fix the issues brought up by Carolyn (W7 and W8 Debug/x32 going to the wrong folder). I won’t be addressing Carolyn’s first request to re-structure the directories. The password for the attached file is “hgst1234” Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 5, 2014 12:04 PM To: Thomas Freeman; nvmewin at lists.openfabrics.org Subject: RE: Changes for Visual Studio 2013/WDK 8.1 - Ready for Review Hi Tom, I found a few minor issues with the patch. One thing I noticed is that 64 bit builds go to a x64 folder, with sub directories for OS versions, but 32 bit builds don’t have a similar Win32 folder. This isn’t a new issue, so if it’s not something you want to fix that’s fine with me. I also noticed that the NVMe Package is pointing to the wrong folder during the last build step for two of the configurations. The Win 7 Debug 32 bit is pointing to the Win 7 Release folder The Win 8.1 Debug 32-bit is pointing to the Win 8.1 Release folder Otherwise I was able to build all of the configurations without any issues. Thanks, Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman Sent: Saturday, July 26, 2014 12:34 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] Changes for Visual Studio 2013/WDK 8.1 - Ready for Review I’ve attached the driver changes for updating the driver to run on Visual Studio 2013/WDK 8.1 Please review and respond with comments by August 4. The password for the attachment is “hgst1234” By opening the driver solution under with Visual Studio 2013/WDK 8.1, the following files were updated: nvme.vcxproj, nvme.vcxproj.filters, nvme.vcxproj.user nvmePackage.vcxproj, nvmePackage.vcxproj.filters, nvmePackage.vcxproj.user In the attachment, the file VS2013WDK81.patch details the changes made to each file. Using a mixture of real hardware and QEMU, we ran the following tests on Windows 7, 8 and 8.1 (x64 only): Quick & slow formatting - MBR and GPT, sdstress and IOMETER There were errors running scsi compliance - those results are documented in the attached zip file. These errors existed prior to these changes. Alex is aware of these errors and working to address them. Tom Freeman Thomas.Freeman at hgst.com 507-322-2311 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 1117 bytes Desc: image001.gif URL: From Alex.Chang at pmcs.com Wed Aug 13 14:58:40 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Wed, 13 Aug 2014 21:58:40 +0000 Subject: [nvmewin] Migration To Visual Studio 2013/WDK 8.1 Message-ID: Hi all, Thank you very much, Tom from HGST, for helping on migration to Visual Studio 2013/WDK 8.1. I had pushed the related solution/project files under ~\releases\revision_1.3\nvme_VS2013_WDK81 directory. You may check it out and simply double click the solution file (nvme.sln) to enter VS 2013 build environment. Since there is no source code related changes involved, I did not create any tags for it. The solution/project files load source files under ~\releases\revision_1.3\source directory. For the next patch, which will be from PMC, it contains mostly WHQL related fixes. It should be available for review/test no later than early next week. Thanks, Alex nvmewin mailing list nvmewin at lists.openfabrics.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From suman.p at samsung.com Thu Aug 14 01:40:53 2014 From: suman.p at samsung.com (SUMAN PRAKASH B) Date: Thu, 14 Aug 2014 08:40:53 +0000 (GMT) Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Message-ID: An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 201408141412771_BSL8PYMC.gif Type: image/gif Size: 13168 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ChangeDetails.txt Type: application/octet-stream Size: 5218 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: SamsungPatch1_v1_08142014.zip Type: application/octet-stream Size: 174647 bytes Desc: not available URL: From Alex.Chang at pmcs.com Thu Aug 14 09:44:35 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Thu, 14 Aug 2014 16:44:35 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> References: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> Message-ID: Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn - http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it's called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to '1' first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don't need both - we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to '0' and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFB7A4.5316B3B0] [Image removed by sender.] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ~WRD000.jpg Type: image/jpeg Size: 823 bytes Desc: ~WRD000.jpg URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: From judy.brock at ssi.samsung.com Thu Aug 14 23:51:23 2014 From: judy.brock at ssi.samsung.com (Judy Brock-SSI) Date: Fri, 15 Aug 2014 06:51:23 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: References: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> Message-ID: <36E8D38D6B771A4BBDB1C0D800158A516B64348F@SSIEXCH-MB3.ssi.samsung.com> Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn - http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it's called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to '1' first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don't need both - we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to '0' and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFB81A.A68E5540] [Image removed by sender.] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.jpg Type: image/jpeg Size: 823 bytes Desc: image002.jpg URL: From Alex.Chang at pmcs.com Fri Aug 15 11:02:17 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Fri, 15 Aug 2014 18:02:17 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: <36E8D38D6B771A4BBDB1C0D800158A516B64348F@SSIEXCH-MB3.ssi.samsung.com> References: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A516B64348F@SSIEXCH-MB3.ssi.samsung.com> Message-ID: Thanks, Judy, for letting me know. Regards, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Thursday, August 14, 2014 11:51 PM To: Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn - http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it's called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to '1' first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don't need both - we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to '0' and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFB878.576BC2A0] [Image removed by sender.] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.jpg Type: image/jpeg Size: 823 bytes Desc: image002.jpg URL: From Uma.Parepalli at skhms.com Fri Aug 15 11:47:09 2014 From: Uma.Parepalli at skhms.com (Uma Parepalli) Date: Fri, 15 Aug 2014 18:47:09 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: References: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A516B64348F@SSIEXCH-MB3.ssi.samsung.com> Message-ID: <2bfd654da7ed4a8e811ae07f459bf74f@N111XMB0240.skhms.com> Thank you Alex and Judy. Hi Judy, Does your email mean that there will be a patch by tomorrow 8/16 so that Alex can have it released on Monday 8/18? I would prefer to have the patch with the crash fix. Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 11:02 AM To: Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy, for letting me know. Regards, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Thursday, August 14, 2014 11:51 PM To: Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn - http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it's called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to '1' first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don't need both - we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to '0' and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFB87E.A508C840] [Image removed by sender.] The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.jpg Type: image/jpeg Size: 823 bytes Desc: image002.jpg URL: From guy.kendall at avagotech.com Fri Aug 15 15:05:22 2014 From: guy.kendall at avagotech.com (Guy Kendall) Date: Fri, 15 Aug 2014 16:05:22 -0600 Subject: [nvmewin] SCSI to NVMe Mapping In-Reply-To: References: Message-ID: Amber/Uma, Sorry for the delayed response, I’m trying to get caught back up after vacation. First I should say that I am in no way leading the SCSI to NVMe translation effort. I’m just the last person to contribute. The spec has been a community effort with many companies contributing. I didn’t contribute or modify the text you reference, but I’ll give you my interpretation of it. There are many commands that can be roughly translated between SCSI and NVMe. However, there are also some SCSI commands that have no direct translation to an NVMe command. In the case where there isn’t a direct translation, the driver implementing the SCSI to NVMe translation layer must respond to the SCSI commands in a way that will make a SCSI driver sending these commands happy. I guess you can say that the driver has to emulate these commands that can’t be translated. The translation spec does indicate how you are supposed to respond to commands like Request Sense, but the spec is certainly pretty light on detail. The SCSI to NVMe translation spec serves the same purpose as the T10 SAT (SCSI to ATA translation) spec, but the NVMe spec is much less mature. If you’re interested, I think the NVMe community would welcome any proposals you have to help update the NVMe translations to the same level as the ATA translations. Thanks, Guy *From:* Huffman, Amber [mailto:amber.huffman at intel.com] *Sent:* Wednesday, August 06, 2014 1:19 PM *To:* Uma Parepalli; technical at nvmexpress.org; nvmewin at lists.openfabrics.org; info at nvmexpress.org *Cc:* Guy Kendall (guy.kendall at avagotech.com) *Subject:* RE: SCSI to NVMe Mapping Hi Uma, Guy, cc:ed, has been leading our efforts on SCSI to NVMe translation. I’d suggest that you get together with Guy for 15 minutes to discuss and determine whether anything needs to be added to the list of translation enhancements in this area. I expect we’ll start looking at some enhancements to the translation document in September, after revision 1.2 is done. Thanks, Amber *From:* nvmewin-bounces at lists.openfabrics.org [ mailto:nvmewin-bounces at lists.openfabrics.org ] *On Behalf Of *Uma Parepalli *Sent:* Tuesday, August 5, 2014 6:40 PM *To:* technical at nvmexpress.org; nvmewin at lists.openfabrics.org; info at nvmexpress.org *Subject:* [nvmewin] SCSI to NVMe Mapping Hi Amber/Peter/Kevin/Kwok and all, The “NVM Express: SCSI Translation Reference” document doesn’t provide a direct mapping for “REQUEST SENSE” but has the following Note: “MODE SELECT(6), MODE SELECT(10), REQUEST SENSE and TEST UNIT READY commands do not map 1-to-1 to NVM Express commands; a device driver should translate as specified in the referenced sections.” Could you please explain what would be the above commands are equal to in the NVMe world? I would like to hear from both NVMe forum and Windows Driver world. Attaching the document since I know you (we) are all busy with Flash Memory Summit J Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From judy.brock at ssi.samsung.com Fri Aug 15 17:13:17 2014 From: judy.brock at ssi.samsung.com (Judy Brock-SSI) Date: Sat, 16 Aug 2014 00:13:17 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: <2bfd654da7ed4a8e811ae07f459bf74f@N111XMB0240.skhms.com> References: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A516B64348F@SSIEXCH-MB3.ssi.samsung.com> <2bfd654da7ed4a8e811ae07f459bf74f@N111XMB0240.skhms.com> Message-ID: <36E8D38D6B771A4BBDB1C0D800158A516B64384D@SSIEXCH-MB3.ssi.samsung.com> Hi Uma, I am not sure if there will be a patch by tomorrow. I relayed the exact message I got from Suman which was that he expects to have an update by EOD tomorrow. I believe it will depend on what he finds. Thanks, Judy From: Uma Parepalli [mailto:Uma.Parepalli at skhms.com] Sent: Friday, August 15, 2014 11:47 AM To: Alex Chang; Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Thank you Alex and Judy. Hi Judy, Does your email mean that there will be a patch by tomorrow 8/16 so that Alex can have it released on Monday 8/18? I would prefer to have the patch with the crash fix. Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 11:02 AM To: Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy, for letting me know. Regards, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Thursday, August 14, 2014 11:51 PM To: Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn - http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it's called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to '1' first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don't need both - we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to '0' and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFB8AC.33AE4B60] [Image removed by sender.] The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.jpg Type: image/jpeg Size: 823 bytes Desc: image002.jpg URL: From Alex.Chang at pmcs.com Fri Aug 15 17:50:24 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Sat, 16 Aug 2014 00:50:24 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: <36E8D38D6B771A4BBDB1C0D800158A516B64384D@SSIEXCH-MB3.ssi.samsung.com> References: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A516B64348F@SSIEXCH-MB3.ssi.samsung.com> <2bfd654da7ed4a8e811ae07f459bf74f@N111XMB0240.skhms.com> <36E8D38D6B771A4BBDB1C0D800158A516B64384D@SSIEXCH-MB3.ssi.samsung.com> Message-ID: Hi Judy, I have my patch ready. Can I send it out first? And Suman can take his time to debug the issue? Thanks, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Friday, August 15, 2014 5:13 PM To: Uma Parepalli; Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Uma, I am not sure if there will be a patch by tomorrow. I relayed the exact message I got from Suman which was that he expects to have an update by EOD tomorrow. I believe it will depend on what he finds. Thanks, Judy From: Uma Parepalli [mailto:Uma.Parepalli at skhms.com] Sent: Friday, August 15, 2014 11:47 AM To: Alex Chang; Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Thank you Alex and Judy. Hi Judy, Does your email mean that there will be a patch by tomorrow 8/16 so that Alex can have it released on Monday 8/18? I would prefer to have the patch with the crash fix. Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 11:02 AM To: Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy, for letting me know. Regards, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Thursday, August 14, 2014 11:51 PM To: Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn - http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it's called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to '1' first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don't need both - we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to '0' and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFB8B1.5A5250E0] [Image removed by sender.] The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.jpg Type: image/jpeg Size: 823 bytes Desc: image002.jpg URL: From judy.brock at ssi.samsung.com Fri Aug 15 17:50:43 2014 From: judy.brock at ssi.samsung.com (Judy Brock-SSI) Date: Sat, 16 Aug 2014 00:50:43 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: References: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A516B64348F@SSIEXCH-MB3.ssi.samsung.com> <2bfd654da7ed4a8e811ae07f459bf74f@N111XMB0240.skhms.com> <36E8D38D6B771A4BBDB1C0D800158A516B64384D@SSIEXCH-MB3.ssi.samsung.com> Message-ID: <36E8D38D6B771A4BBDB1C0D800158A516B643891@SSIEXCH-MB3.ssi.samsung.com> Sure. Thanks, Judy From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Friday, August 15, 2014 5:50 PM To: Judy Brock-SSI; Uma Parepalli; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Judy, I have my patch ready. Can I send it out first? And Suman can take his time to debug the issue? Thanks, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Friday, August 15, 2014 5:13 PM To: Uma Parepalli; Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Uma, I am not sure if there will be a patch by tomorrow. I relayed the exact message I got from Suman which was that he expects to have an update by EOD tomorrow. I believe it will depend on what he finds. Thanks, Judy From: Uma Parepalli [mailto:Uma.Parepalli at skhms.com] Sent: Friday, August 15, 2014 11:47 AM To: Alex Chang; Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Thank you Alex and Judy. Hi Judy, Does your email mean that there will be a patch by tomorrow 8/16 so that Alex can have it released on Monday 8/18? I would prefer to have the patch with the crash fix. Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 11:02 AM To: Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy, for letting me know. Regards, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Thursday, August 14, 2014 11:51 PM To: Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn - http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it's called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to '1' first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don't need both - we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to '0' and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFB8B1.6EFA8DF0] [Image removed by sender.] The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.jpg Type: image/jpeg Size: 823 bytes Desc: image002.jpg URL: From Alex.Chang at pmcs.com Fri Aug 15 17:51:34 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Sat, 16 Aug 2014 00:51:34 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: <36E8D38D6B771A4BBDB1C0D800158A516B643891@SSIEXCH-MB3.ssi.samsung.com> References: <5506_1408005683_53EC7632_5506_12525_1_BD.4D.07728.5167CE35@epcpsbgx3.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A516B64348F@SSIEXCH-MB3.ssi.samsung.com> <2bfd654da7ed4a8e811ae07f459bf74f@N111XMB0240.skhms.com> <36E8D38D6B771A4BBDB1C0D800158A516B64384D@SSIEXCH-MB3.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A516B643891@SSIEXCH-MB3.ssi.samsung.com> Message-ID: Thanks, Judy. Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Friday, August 15, 2014 5:51 PM To: Alex Chang; Uma Parepalli; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Sure. Thanks, Judy From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Friday, August 15, 2014 5:50 PM To: Judy Brock-SSI; Uma Parepalli; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Judy, I have my patch ready. Can I send it out first? And Suman can take his time to debug the issue? Thanks, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Friday, August 15, 2014 5:13 PM To: Uma Parepalli; Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Uma, I am not sure if there will be a patch by tomorrow. I relayed the exact message I got from Suman which was that he expects to have an update by EOD tomorrow. I believe it will depend on what he finds. Thanks, Judy From: Uma Parepalli [mailto:Uma.Parepalli at skhms.com] Sent: Friday, August 15, 2014 11:47 AM To: Alex Chang; Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Thank you Alex and Judy. Hi Judy, Does your email mean that there will be a patch by tomorrow 8/16 so that Alex can have it released on Monday 8/18? I would prefer to have the patch with the crash fix. Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 11:02 AM To: Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy, for letting me know. Regards, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Thursday, August 14, 2014 11:51 PM To: Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn - http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it's called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to '1' first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don't need both - we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to '0' and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFB8B1.83F35C00] [Image removed by sender.] The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.jpg Type: image/jpeg Size: 823 bytes Desc: image002.jpg URL: From Alex.Chang at pmcs.com Fri Aug 15 17:56:09 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Sat, 16 Aug 2014 00:56:09 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Message-ID: Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: scsicompliance_HCK_8.100.26795.txt URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: PMC_SCSI_Comp_Fixes_N_Others_v0_08152014.zip Type: application/x-zip-compressed Size: 178209 bytes Desc: PMC_SCSI_Comp_Fixes_N_Others_v0_08152014.zip URL: From suman.p at samsung.com Sat Aug 16 03:47:06 2014 From: suman.p at samsung.com (SUMAN PRAKASH B) Date: Sat, 16 Aug 2014 10:47:06 +0000 (GMT) Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Message-ID: <43.A1.18761.AA63FE35@epcpsbgx4.samsung.com> An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 201408161619064_T9SZN3WZ.gif Type: image/gif Size: 13168 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: SamsungPatch1_v2_08162014.zip Type: application/octet-stream Size: 174694 bytes Desc: not available URL: From suman.p at samsung.com Sat Aug 16 05:04:55 2014 From: suman.p at samsung.com (SUMAN PRAKASH B) Date: Sat, 16 Aug 2014 12:04:55 +0000 (GMT) Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Message-ID: <30.D1.11474.7E84FE35@epcpsbgx1.samsung.com> An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 201408161737157_YKENUIXH.gif Type: image/gif Size: 13168 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: SamsungPatch1_v3_08162014.zip Type: application/octet-stream Size: 175091 bytes Desc: not available URL: From cheng.peng at memblaze.com Sun Aug 17 18:54:41 2014 From: cheng.peng at memblaze.com (cheng.peng at memblaze.com) Date: Mon, 18 Aug 2014 09:54:41 +0800 Subject: [nvmewin] nvmewin Digest, Vol 32, Issue 27 References: Message-ID: <201408180954405278210@memblaze.com> Hi all Could you tell me the password of SamsungPatch? cheng.peng at memblaze.com From: nvmewin-request Date: 2014-08-16 20:02 To: nvmewin Subject: nvmewin Digest, Vol 32, Issue 27 Send nvmewin mailing list submissions to nvmewin at lists.openfabrics.org To subscribe or unsubscribe via the World Wide Web, visit http://lists.openfabrics.org/mailman/listinfo/nvmewin or, via email, send a message with subject or body 'help' to nvmewin-request at lists.openfabrics.org You can reach the person managing the list at nvmewin-owner at lists.openfabrics.org When replying, please edit your Subject line so it is more specific than "Re: Contents of nvmewin digest..." Today's Topics: 1. Re: NVMe OFA Patch for Random bug fixes (SUMAN PRAKASH B) ---------------------------------------------------------------------- Message: 1 Date: Sat, 16 Aug 2014 12:04:55 +0000 (GMT) From: SUMAN PRAKASH B To: "nvmewin at lists.openfabrics.org" Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Message-ID: <30.D1.11474.7E84FE35 at epcpsbgx1.samsung.com> Content-Type: text/plain; charset="us-ascii" An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 201408161737157_YKENUIXH.gif Type: image/gif Size: 13168 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: SamsungPatch1_v3_08162014.zip Type: application/octet-stream Size: 175091 bytes Desc: not available URL: ------------------------------ _______________________________________________ nvmewin mailing list nvmewin at lists.openfabrics.org http://lists.openfabrics.org/mailman/listinfo/nvmewin End of nvmewin Digest, Vol 32, Issue 27 *************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Mon Aug 18 08:32:24 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Mon, 18 Aug 2014 15:32:24 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: <13120_1408191277_53EF4B2D_13120_14932_1_30.D1.11474.7E84FE35@epcpsbgx1.samsung.com> References: <13120_1408191277_53EF4B2D_13120_14932_1_30.D1.11474.7E84FE35@epcpsbgx1.samsung.com> Message-ID: Hi Suman, Thank you for fixing the issues. I had sent out PMC patch for the community to review/test last Friday. In order to avoid confusion, we only allow one pending patch at a time. After PMC patch is approved by the community, we will start to review/test your patch. Please note that you will need to re-base your changes on top of the most current sources in OFA NVMe Windows repository before sending out your patch. You will be notified when PMC patch had been added to the repository. Again, thank you so much for your effort. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Saturday, August 16, 2014 5:05 AM To: nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, There was one more bug in nvmeSnti.c - SntiSetScsiSenseData(). In the statement - SrbSetScsiData(pSrb, NULL, NULL, NULL, NULL, sizeof(SENSE_DATA)); The last parameter is supposed to be a pointer. System is crashing with KiPageFault error in Windows 8.1. Please find attached Patch1-v3 with this issue corrected. Kindly ignore Patch1-v2. Thanks, Suman ------- Original Message ------- Sender : SUMAN PRAKASH B Chief Engineer/SRI-Bangalore-SSD Solutions/Samsung Electronics Date : Aug 16, 2014 16:51 (GMT+05:00) Title : RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Kindly excuse me for delay in responding to your mails. 15th August was Independence day in India and we were not allowed to come to office :) Anyway, I compiled the code in checked build and after installing the driver on Windows 8.1, observed a BSOD. The issue was in IO_StorPortNotification() routine. For a particular SRB_FUNCTION_IO_CONTROL - IOCTL_SCSI_MINIPORT_IDENTIFY request, the pCdb was NULL. Hence BSOD was happening at StorPortDebugPrint(INFO, "FYI: SRB status 0x%x scsi 0x%x for CDB 0x%x BTL %d %d %d\n", pSrb->SrbStatus, scsiStatus, *pCdb, SrbGetPathId((void*)pSrb), SrbGetTargetId((void*)pSrb), SrbGetLun((void*)pSrb)); This issue is not reproducible in release build. I did not find any other issues on Win8.1 right after installation. Please find attached the corrected code. Password is samsung123. Please do let me know if this resolves the crash that you had seen. Thanks, Suman ------- Original Message ------- Sender : Alex Chang Date : Aug 16, 2014 05:51 (GMT+05:00) Title : RE: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy. Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Friday, August 15, 2014 5:51 PM To: Alex Chang; Uma Parepalli; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Sure. Thanks, Judy From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Friday, August 15, 2014 5:50 PM To: Judy Brock-SSI; Uma Parepalli; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Judy, I have my patch ready. Can I send it out first? And Suman can take his time to debug the issue? Thanks, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Friday, August 15, 2014 5:13 PM To: Uma Parepalli; Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Uma, I am not sure if there will be a patch by tomorrow. I relayed the exact message I got from Suman which was that he expects to have an update by EOD tomorrow. I believe it will depend on what he finds. Thanks, Judy From: Uma Parepalli [mailto:Uma.Parepalli at skhms.com] Sent: Friday, August 15, 2014 11:47 AM To: Alex Chang; Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Thank you Alex and Judy. Hi Judy, Does your email mean that there will be a patch by tomorrow 8/16 so that Alex can have it released on Monday 8/18? I would prefer to have the patch with the crash fix. Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 11:02 AM To: Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy, for letting me know. Regards, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Thursday, August 14, 2014 11:51 PM To: Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn – http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it’s called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to ‘1’ first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don’t need both – we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to ‘0’ and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFBABE.E2CF6930] [Image removed by sender.] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ~WRD000.jpg Type: image/jpeg Size: 823 bytes Desc: ~WRD000.jpg URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: From Alex.Chang at pmcs.com Tue Aug 19 09:09:41 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Tue, 19 Aug 2014 16:09:41 +0000 Subject: [nvmewin] NVMe OFA Patch for Random bug fixes In-Reply-To: References: Message-ID: Thank you! Suman. Alex From: SUMAN PRAKASH B [mailto:suman.p at samsung.com] Sent: Tuesday, August 19, 2014 7:24 AM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Sure. I will re-base the Samsung patch once the PMC patch is added to the repository. Thanks, Suman ------- Original Message ------- Sender : Alex Chang Date : Aug 18, 2014 20:32 (GMT+05:00) Title : RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you for fixing the issues. I had sent out PMC patch for the community to review/test last Friday. In order to avoid confusion, we only allow one pending patch at a time. After PMC patch is approved by the community, we will start to review/test your patch. Please note that you will need to re-base your changes on top of the most current sources in OFA NVMe Windows repository before sending out your patch. You will be notified when PMC patch had been added to the repository. Again, thank you so much for your effort. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Saturday, August 16, 2014 5:05 AM To: nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, There was one more bug in nvmeSnti.c - SntiSetScsiSenseData(). In the statement - SrbSetScsiData(pSrb, NULL, NULL, NULL, NULL, sizeof(SENSE_DATA)); The last parameter is supposed to be a pointer. System is crashing with KiPageFault error in Windows 8.1. Please find attached Patch1-v3 with this issue corrected. Kindly ignore Patch1-v2. Thanks, Suman ------- Original Message ------- Sender : SUMAN PRAKASH B Chief Engineer/SRI-Bangalore-SSD Solutions/Samsung Electronics Date : Aug 16, 2014 16:51 (GMT+05:00) Title : RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Kindly excuse me for delay in responding to your mails. 15th August was Independence day in India and we were not allowed to come to office :) Anyway, I compiled the code in checked build and after installing the driver on Windows 8.1, observed a BSOD. The issue was in IO_StorPortNotification() routine. For a particular SRB_FUNCTION_IO_CONTROL - IOCTL_SCSI_MINIPORT_IDENTIFY request, the pCdb was NULL. Hence BSOD was happening at StorPortDebugPrint(INFO, "FYI: SRB status 0x%x scsi 0x%x for CDB 0x%x BTL %d %d %d\n", pSrb->SrbStatus, scsiStatus, *pCdb, SrbGetPathId((void*)pSrb), SrbGetTargetId((void*)pSrb), SrbGetLun((void*)pSrb)); This issue is not reproducible in release build. I did not find any other issues on Win8.1 right after installation. Please find attached the corrected code. Password is samsung123. Please do let me know if this resolves the crash that you had seen. Thanks, Suman ------- Original Message ------- Sender : Alex Chang Date : Aug 16, 2014 05:51 (GMT+05:00) Title : RE: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy. Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Friday, August 15, 2014 5:51 PM To: Alex Chang; Uma Parepalli; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Sure. Thanks, Judy From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Friday, August 15, 2014 5:50 PM To: Judy Brock-SSI; Uma Parepalli; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Judy, I have my patch ready. Can I send it out first? And Suman can take his time to debug the issue? Thanks, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Friday, August 15, 2014 5:13 PM To: Uma Parepalli; Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Uma, I am not sure if there will be a patch by tomorrow. I relayed the exact message I got from Suman which was that he expects to have an update by EOD tomorrow. I believe it will depend on what he finds. Thanks, Judy From: Uma Parepalli [mailto:Uma.Parepalli at skhms.com] Sent: Friday, August 15, 2014 11:47 AM To: Alex Chang; Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Thank you Alex and Judy. Hi Judy, Does your email mean that there will be a patch by tomorrow 8/16 so that Alex can have it released on Monday 8/18? I would prefer to have the patch with the crash fix. Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 11:02 AM To: Judy Brock-SSI; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Thanks, Judy, for letting me know. Regards, Alex From: Judy Brock-SSI [mailto:judy.brock at ssi.samsung.com] Sent: Thursday, August 14, 2014 11:51 PM To: Alex Chang; SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Alex, Please go ahead with your patch on Monday. Suman will be out of the office tomorrow (the 15th). However, he is planning on looking into the crash on the 16th and should have an update by EOD 16th. Thanks, Judy From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Thursday, August 14, 2014 9:45 AM To: SUMAN PRAKASH B; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] NVMe OFA Patch for Random bug fixes Hi Suman, Thank you so much for your effort. I did a quick test on Windows 8.1 and it crashes the system right after installation. Have you seen that? By the way, I thought PMC is the next to send patch out. Anyway, Could you please look into the crash? If it can be fixed by the end of tomorrow, we will start reviewing/testing your patch. Otherwise, I will send out PMC patch on Monday. Regards, Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of SUMAN PRAKASH B Sent: Thursday, August 14, 2014 1:41 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] NVMe OFA Patch for Random bug fixes Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi Everyone, We have a patch for the following random bug fixes - a. Invalid return value for NVMeAdapterControl. b. Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set. c. Support for STORAGE_REQUEST_BLOCK in DriverEntry. d. Handling return value for NVMeCompleteCmd. e. Handling return value for NVMeWaitForCtrlRDY. f. Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. g. Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage. h. Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. i. Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. j. Write Buffer implementation correction. k. Enabling Eject option in the taskbar. Please send feedback by August 21st. The password is samsung123 Change details - 1) Invalid return value for NVMeAdapterControl NVMeAdapterControl miniport routine - sometimes returns illegal value. WDK specifies that the driver must always return ScsiAdapterControlSuccess. However, depending on execution, the driver may currently return ScsiAdapterControlUnsuccessful for ScsiStopAdapter and ScsiRestartAdapter control types. As per msdn – http://msdn.microsoft.com/en-us/library/windows/hardware/ff557365(v=vs.85).aspx Affected Files/Functions: nvmeStd.c / NVMeAdapterControl() 2) Handling StartIo deadlock when MultipleCoresToSingleQueueFlag is set Affected Files/Functions: Set the AcquireLock parameter to FALSE in the processio () in the below functions. nvmeSnti.c / SntiTranslateTemperatureResponse () nvmeSnti.c / SntiTranslateStartStopUnitResponse () nvmeStd.c / NVMeHandleSmartThresholds () 3) Support for STORAGE_REQUEST_BLOCK in DriverEntry Set the SrbTypeFlags in DriverEntry() function to support STORAGE_REQUEST_BLOCK. Affected Files/Functions: nvmeStd.c / DriverEntry (): 4) Handlings return value for NVMeCompleteCmd. NVMeCompleteCmd should have a return value that can be checked to see if it was successful or not. Right now, wherever it’s called from the code forges ahead regardless of whether it succeeded or failed: VOID NVMeCompleteCmd{ . . . if ((pCmdEntry->Pending == FALSE) || (pCmdEntry->Context == NULL)) { /* Something bad happened so reset the adapter and hope for the best */ NVMeResetController(pAE, NULL); return; } As shown above, one of the routines which NVMeCompleteCmd calls is NVMeResetController. Since NVMeCompleteCmd has no return value, this fatal error return is never detected in any of the places that the function is called from (quite a few) - the logic just proceeds on as if everything is fine. In some cases NVMeCompleteCmd can be called over and over (if it is called from DetectPendingCmds or IoCompletionDpcRoutine for example) which may in turn cause repeated calls to NVMeResetController. Affected Files/Functions: nvmeIo.c / ProcessIo () nvmeIo.c / NVMeCompleteCmd () nvmeIo.h / NVMeCompleteCmd () nvmeStd.c / IoCompletionDpcRoutine () 5) Handling return value for NVMeWaitForCtrlRDY NVMeWaitForCtrlRDY should have a return value of type BOOLEAN that can be checked to see if it was successful or not. Affected Files/Functions: nvmeStd.c / NVMeInitialize () 6) Fixing the NVMeResetAdapter issues to check if CC.EN is set to 1 before setting to 0. The routine NVMeResetAdapter() sets CC.EN to 0 without ever checking to make sure that CSTS.RDY is set to ‘1’ first. This check has to be included in this routine. Since it is not, there are many paths in the driver where there is no prior check for this condition: a) NVMeInitAdminQueues -> NVMeEnableAdapter -> NVMeResetAdapter b) NVMeNormalShutdown -> NVMeResetAdapter c) NVMeAdapterControlPowerDown -> NVMeResetAdapter d) NVMeSynchronizeReset -> NVMeResetAdapter Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 7) Memory corruption constructing inquiry response data in SntiTranslateStandardInquiryPage Memory corruption constructing inquiry response data - In SntiTranslateStandardInquiryPage(), the following line of code is touching a field way past the end of STANDARD_INQUIRY_LENGTH (36 bytes): pStdInquiry->Reserved3[0] = RESERVED_FIELD; Affected Files/Functions: nvmeSnti.c / SntiTranslateStandardInquiryPage () 8) Eliminate NVMeWaitOnReady and use only NVMeWaitForCtrlRDY. There is redundancy in the new routine NVMeWaitForCtrlRDY() and the old routine NVMeWaitOnReady(). We don’t need both – we can get rid of the old routine. Affected Files/Functions: nvmeInit.c / NVMeResetAdapter () 9) Fix the RecoveryDpcRoutine to avoid redundant setting of CC.EN bit to 0. The code does not need to set CC.EN to ‘0’ and then wait for CSTS.RDY to become 0 because right after it does so, it calls NVMeResetAdapter which does the exact same thing. Affected Files/Functions: nvmeStd.c / RecoveryDpcRoutine () 10) Write Buffer implementation correction. a. Calculation of dword10 for DOWNLOAD_SAVE_ACTIVATE and DOWNLOAD_SAVE_DEFER_ACTIVATE is modified. b. Set the SRB Status value for NVMe command failure condition in SntiCompletionCallbackRoutine. c. Prepare the Firmware Activate Command and issue the command in case of DOWNLOAD_SAVE_ACTIVATE mode in SntiTranslateWriteBufferResponse. d. Handled the scenario of SNTI_SEQUENCE_IN_PROGRESS for Write Data Buffer command. Affected Files/Functions: nvmeSnti.c / SntiCompletionCallbackRoutine nvmeSnti.c / SntiTranslateWriteBufferResponse 11) Enabling Eject option in the taskbar: Affected Files/Functions: nvmeStd.c / DriverEntry (): Set the FeatureSupport flag to STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES. nvmeStd.c / NVMeBuildIo (): Use the PSTOR_DEVICE_CAPABILITIES_EX structure for PNPAction StorQueryCapabilities. Set the Removable flag to TRUE. Unit tests: Win7/8/8.1, Server 2008R2/2012/2012R2 Thanks, Suman [cid:image001.gif at 01CFBB8D.43107A90] [Image removed by sender.] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ~WRD000.jpg Type: image/jpeg Size: 823 bytes Desc: ~WRD000.jpg URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: From mikeb at bustrace.com Tue Aug 19 10:37:51 2014 From: mikeb at bustrace.com (Mike Berhan) Date: Tue, 19 Aug 2014 11:37:51 -0600 Subject: [nvmewin] Utility to view NVMe Identify Data Message-ID: <002301cfbbd4$4d113d30$e733b790$@bustrace.com> I've updated our free storage manager applet to decode an NVMe drive's IDENTIFY controller and namespace structure (NVMe 1.1 decoding). If you want to test it against your drive, simply download it from here: http://www.bustrace.com/downloads/free_utilities.php Select the "busTRACE Storage Manager v10.0.019" option. Install and run. Click on your NVMe device. If the miniport properly supports pass through IOCTLs, you'll see a hyperlink to view additional NVMe information. The device temperature currently is not displayed within the GUI. That will change once the miniport supports the Log Sense temperature command (or I modify the utility to retrieve the data through NVMe). Thought this might be helpful to the NVMe community. Please e-mail me any questions/comments. Thanks. Mike Berhan busTRACE Technologies -------------- next part -------------- An HTML attachment was scrubbed... URL: From Uma.Parepalli at skhms.com Tue Aug 19 14:00:34 2014 From: Uma.Parepalli at skhms.com (Uma Parepalli) Date: Tue, 19 Aug 2014 21:00:34 +0000 Subject: [nvmewin] SCSI to NVMe Mapping In-Reply-To: References: Message-ID: <2f9057bae63e4a60bffc46c2cbd77fdf@N111XMB0240.skhms.com> Thank you Guy. We will think about it and make a proposal. WHCK loads its own driver after unloading whatever the driver was loaded under Windows 8.1. We will have to talk to Microsoft in that case. Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA From: Guy Kendall [mailto:guy.kendall at avagotech.com] Sent: Friday, August 15, 2014 3:05 PM To: Huffman, Amber; Uma Parepalli; technical at nvmexpress.org; nvmewin at lists.openfabrics.org; info at nvmexpress.org Subject: RE: SCSI to NVMe Mapping Amber/Uma, Sorry for the delayed response, I’m trying to get caught back up after vacation. First I should say that I am in no way leading the SCSI to NVMe translation effort. I’m just the last person to contribute. The spec has been a community effort with many companies contributing. I didn’t contribute or modify the text you reference, but I’ll give you my interpretation of it. There are many commands that can be roughly translated between SCSI and NVMe. However, there are also some SCSI commands that have no direct translation to an NVMe command. In the case where there isn’t a direct translation, the driver implementing the SCSI to NVMe translation layer must respond to the SCSI commands in a way that will make a SCSI driver sending these commands happy. I guess you can say that the driver has to emulate these commands that can’t be translated. The translation spec does indicate how you are supposed to respond to commands like Request Sense, but the spec is certainly pretty light on detail. The SCSI to NVMe translation spec serves the same purpose as the T10 SAT (SCSI to ATA translation) spec, but the NVMe spec is much less mature. If you’re interested, I think the NVMe community would welcome any proposals you have to help update the NVMe translations to the same level as the ATA translations. Thanks, Guy From: Huffman, Amber [mailto:amber.huffman at intel.com] Sent: Wednesday, August 06, 2014 1:19 PM To: Uma Parepalli; technical at nvmexpress.org; nvmewin at lists.openfabrics.org; info at nvmexpress.org Cc: Guy Kendall (guy.kendall at avagotech.com) Subject: RE: SCSI to NVMe Mapping Hi Uma, Guy, cc:ed, has been leading our efforts on SCSI to NVMe translation. I’d suggest that you get together with Guy for 15 minutes to discuss and determine whether anything needs to be added to the list of translation enhancements in this area. I expect we’ll start looking at some enhancements to the translation document in September, after revision 1.2 is done. Thanks, Amber From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Uma Parepalli Sent: Tuesday, August 5, 2014 6:40 PM To: technical at nvmexpress.org; nvmewin at lists.openfabrics.org; info at nvmexpress.org Subject: [nvmewin] SCSI to NVMe Mapping Hi Amber/Peter/Kevin/Kwok and all, The “NVM Express: SCSI Translation Reference” document doesn’t provide a direct mapping for “REQUEST SENSE” but has the following Note: “MODE SELECT(6), MODE SELECT(10), REQUEST SENSE and TEST UNIT READY commands do not map 1-to-1 to NVM Express commands; a device driver should translate as specified in the referenced sections.” Could you please explain what would be the above commands are equal to in the NVMe world? I would like to hear from both NVMe forum and Windows Driver world. Attaching the document since I know you (we) are all busy with Flash Memory Summit ☺ Thank you, Uma Uma Parepalli Cell: 408 805 9260 uma.parepalli at skhms.com SK Hynix Memory Solutions Inc. 3103 North 1st Street, San Jose, CA The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From parag.sheth at avagotech.com Tue Aug 19 15:59:45 2014 From: parag.sheth at avagotech.com (Parag Sheth) Date: Tue, 19 Aug 2014 15:59:45 -0700 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: Message-ID: Hi Alex, I noticed some changes in nvmeInit.c which are not related to the fixes you mentioned in the email below. I am comparing the patch against revision 1.3 source code. Thanks Parag Sheth *From:* nvmewin-bounces at lists.openfabrics.org [mailto: nvmewin-bounces at lists.openfabrics.org] *On Behalf Of *Alex Chang *Sent:* Friday, August 15, 2014 5:56 PM *To:* nvmewin at lists.openfabrics.org *Subject:* [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Tue Aug 19 16:09:53 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Tue, 19 Aug 2014 23:09:53 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: Message-ID: Hi Parag, We had pushed a patch from Carolyn (Intel) after revision 1.3. I believe that are the changes you saw in nvmeinit.c. Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Tuesday, August 19, 2014 4:00 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I noticed some changes in nvmeInit.c which are not related to the fixes you mentioned in the email below. I am comparing the patch against revision 1.3 source code. Thanks Parag Sheth From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From carolyn.d.foster at intel.com Mon Aug 25 14:54:30 2014 From: carolyn.d.foster at intel.com (Foster, Carolyn D) Date: Mon, 25 Aug 2014 21:54:30 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: Message-ID: Hi Alex, I have a few comments about the patch. In SntiBuildGetLogPageCmd: Line 5347 - not all log pages are for the global controller. SMART Health Information can be for a specific namespace if the Log Page Attributes bit for SupportsSMART_HealthInformationLogPage is set. Also you can probably remove the PMC ADD comment. Line 5372 - The numDwords calculation is a little confusing here. It might be more clear if you calculated the number of dwords by dividing by the size of a UINT32 rather than by using the shift operation. In SntiBuildFlushCmd: Some of the comments in this function aren't accurate. Line 5547 refers to WRITE, and line 5550 no longer matches line 5551, after the change. Let me know if you have any questions. Thanks! Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From parag.sheth at avagotech.com Mon Aug 25 14:56:44 2014 From: parag.sheth at avagotech.com (Parag Sheth) Date: Mon, 25 Aug 2014 14:56:44 -0700 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: Message-ID: <066317b77204df0b82d5b97f3e399e98@mail.gmail.com> Hi Alex, I did review the changes and they seem ok except A new error is introduced in SCSI Compliance Test. (Test 1.21 Checking Identification Descriptors in VPD page 0x83 fails). It complains that it did not find identifier of type 3, 2 and 1. Thanks Parag Sheth *From:* Alex Chang [mailto:Alex.Chang at pmcs.com] *Sent:* Tuesday, August 19, 2014 4:10 PM *To:* Parag Sheth; nvmewin at lists.openfabrics.org *Subject:* RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Parag, We had pushed a patch from Carolyn (Intel) after revision 1.3. I believe that are the changes you saw in nvmeinit.c. Alex *From:* Parag Sheth [mailto:parag.sheth at avagotech.com ] *Sent:* Tuesday, August 19, 2014 4:00 PM *To:* Alex Chang; nvmewin at lists.openfabrics.org *Subject:* RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I noticed some changes in nvmeInit.c which are not related to the fixes you mentioned in the email below. I am comparing the patch against revision 1.3 source code. Thanks Parag Sheth *From:* nvmewin-bounces at lists.openfabrics.org [mailto: nvmewin-bounces at lists.openfabrics.org] *On Behalf Of *Alex Chang *Sent:* Friday, August 15, 2014 5:56 PM *To:* nvmewin at lists.openfabrics.org *Subject:* [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Mon Aug 25 16:03:50 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Mon, 25 Aug 2014 23:03:50 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: Message-ID: Hi Carolyn, I agree. Just finish the modifications accordingly. Let me brief the first one here and let me know what you think: For both Error and Firmware slot pages, they are global to the device and need to be set as 0xFFFFFFFF. For SMART/Health page, if bit0 of LPA is set, NSID needs to be set up as the namespace ID configured in LUN Extension. Otherwise, it needs to be set as 0xFFFFFFFF. Thanks, Alex From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Monday, August 25, 2014 2:55 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I have a few comments about the patch. In SntiBuildGetLogPageCmd: Line 5347 - not all log pages are for the global controller. SMART Health Information can be for a specific namespace if the Log Page Attributes bit for SupportsSMART_HealthInformationLogPage is set. Also you can probably remove the PMC ADD comment. Line 5372 - The numDwords calculation is a little confusing here. It might be more clear if you calculated the number of dwords by dividing by the size of a UINT32 rather than by using the shift operation. In SntiBuildFlushCmd: Some of the comments in this function aren't accurate. Line 5547 refers to WRITE, and line 5550 no longer matches line 5551, after the change. Let me know if you have any questions. Thanks! Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From carolyn.d.foster at intel.com Mon Aug 25 16:10:06 2014 From: carolyn.d.foster at intel.com (Foster, Carolyn D) Date: Mon, 25 Aug 2014 23:10:06 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: Message-ID: Hi Alex, Yes I had something similar in mind for the log page. This seems like a good approach. Thanks, Carolyn From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Monday, August 25, 2014 4:04 PM To: Foster, Carolyn D; nvmewin at lists.openfabrics.org Subject: RE: PMC Patch For SCSI Compliance Fixes And Others Hi Carolyn, I agree. Just finish the modifications accordingly. Let me brief the first one here and let me know what you think: For both Error and Firmware slot pages, they are global to the device and need to be set as 0xFFFFFFFF. For SMART/Health page, if bit0 of LPA is set, NSID needs to be set up as the namespace ID configured in LUN Extension. Otherwise, it needs to be set as 0xFFFFFFFF. Thanks, Alex From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Monday, August 25, 2014 2:55 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I have a few comments about the patch. In SntiBuildGetLogPageCmd: Line 5347 - not all log pages are for the global controller. SMART Health Information can be for a specific namespace if the Log Page Attributes bit for SupportsSMART_HealthInformationLogPage is set. Also you can probably remove the PMC ADD comment. Line 5372 - The numDwords calculation is a little confusing here. It might be more clear if you calculated the number of dwords by dividing by the size of a UINT32 rather than by using the shift operation. In SntiBuildFlushCmd: Some of the comments in this function aren't accurate. Line 5547 refers to WRITE, and line 5550 no longer matches line 5551, after the change. Let me know if you have any questions. Thanks! Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Mon Aug 25 16:49:38 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Mon, 25 Aug 2014 23:49:38 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: <066317b77204df0b82d5b97f3e399e98@mail.gmail.com> References: <066317b77204df0b82d5b97f3e399e98@mail.gmail.com> Message-ID: Thank you Parag. What version of the SCSI Compliance Test utility you use? What OS you were running the tests on? Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Monday, August 25, 2014 2:57 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I did review the changes and they seem ok except A new error is introduced in SCSI Compliance Test. (Test 1.21 Checking Identification Descriptors in VPD page 0x83 fails). It complains that it did not find identifier of type 3, 2 and 1. Thanks Parag Sheth From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Tuesday, August 19, 2014 4:10 PM To: Parag Sheth; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Parag, We had pushed a patch from Carolyn (Intel) after revision 1.3. I believe that are the changes you saw in nvmeinit.c. Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Tuesday, August 19, 2014 4:00 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I noticed some changes in nvmeInit.c which are not related to the fixes you mentioned in the email below. I am comparing the patch against revision 1.3 source code. Thanks Parag Sheth From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From parag.sheth at avagotech.com Mon Aug 25 16:54:14 2014 From: parag.sheth at avagotech.com (Parag Sheth) Date: Mon, 25 Aug 2014 16:54:14 -0700 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: <066317b77204df0b82d5b97f3e399e98@mail.gmail.com> Message-ID: Hi Alex, I am using “HCK for win 8.1”. The version number displayed is 8.100.26063. I am testing it out on windows 8 64bit target machine. Thanks Parag Sheth *From:* Alex Chang [mailto:Alex.Chang at pmcs.com] *Sent:* Monday, August 25, 2014 4:50 PM *To:* Parag Sheth; nvmewin at lists.openfabrics.org *Subject:* RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Thank you Parag. What version of the SCSI Compliance Test utility you use? What OS you were running the tests on? Alex *From:* Parag Sheth [mailto:parag.sheth at avagotech.com ] *Sent:* Monday, August 25, 2014 2:57 PM *To:* Alex Chang; nvmewin at lists.openfabrics.org *Subject:* RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I did review the changes and they seem ok except A new error is introduced in SCSI Compliance Test. (Test 1.21 Checking Identification Descriptors in VPD page 0x83 fails). It complains that it did not find identifier of type 3, 2 and 1. Thanks Parag Sheth *From:* Alex Chang [mailto:Alex.Chang at pmcs.com] *Sent:* Tuesday, August 19, 2014 4:10 PM *To:* Parag Sheth; nvmewin at lists.openfabrics.org *Subject:* RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Parag, We had pushed a patch from Carolyn (Intel) after revision 1.3. I believe that are the changes you saw in nvmeinit.c. Alex *From:* Parag Sheth [mailto:parag.sheth at avagotech.com ] *Sent:* Tuesday, August 19, 2014 4:00 PM *To:* Alex Chang; nvmewin at lists.openfabrics.org *Subject:* RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I noticed some changes in nvmeInit.c which are not related to the fixes you mentioned in the email below. I am comparing the patch against revision 1.3 source code. Thanks Parag Sheth *From:* nvmewin-bounces at lists.openfabrics.org [mailto: nvmewin-bounces at lists.openfabrics.org] *On Behalf Of *Alex Chang *Sent:* Friday, August 15, 2014 5:56 PM *To:* nvmewin at lists.openfabrics.org *Subject:* [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Mon Aug 25 17:23:26 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Tue, 26 Aug 2014 00:23:26 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: <066317b77204df0b82d5b97f3e399e98@mail.gmail.com> Message-ID: Thank you, Parag. Before migrating to HCK 8.1, we used to have three known failures with older version of SCSI Compliance Test (2.0) utility: - Inquiry - Read Capacity (10) - Write (10) And we believe the driver is processing them properly. I am sure you’re seeing the first one on the list. I am using HCK version 8.100.26795, which is the most current release version. I ran SCSI Compliance Test on Windows 8.1 and all the three failures are fixed. Could you do me a favor? In case the HCK you use still contain older version of SCSI Compliance Test utility, please update it to the most current release and re-run the test. Thank you very much, Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Monday, August 25, 2014 4:54 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I am using “HCK for win 8.1”. The version number displayed is 8.100.26063. I am testing it out on windows 8 64bit target machine. Thanks Parag Sheth From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Monday, August 25, 2014 4:50 PM To: Parag Sheth; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Thank you Parag. What version of the SCSI Compliance Test utility you use? What OS you were running the tests on? Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Monday, August 25, 2014 2:57 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I did review the changes and they seem ok except A new error is introduced in SCSI Compliance Test. (Test 1.21 Checking Identification Descriptors in VPD page 0x83 fails). It complains that it did not find identifier of type 3, 2 and 1. Thanks Parag Sheth From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Tuesday, August 19, 2014 4:10 PM To: Parag Sheth; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Parag, We had pushed a patch from Carolyn (Intel) after revision 1.3. I believe that are the changes you saw in nvmeinit.c. Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Tuesday, August 19, 2014 4:00 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I noticed some changes in nvmeInit.c which are not related to the fixes you mentioned in the email below. I am comparing the patch against revision 1.3 source code. Thanks Parag Sheth From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Tue Aug 26 09:16:29 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Tue, 26 Aug 2014 16:16:29 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: <066317b77204df0b82d5b97f3e399e98@mail.gmail.com> Message-ID: Hi Parag, After re-testing it, you were right about the failure that my changes had introduced. I have corrected it. Sorry about the confusion. Thanks, Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Monday, August 25, 2014 4:54 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I am using “HCK for win 8.1”. The version number displayed is 8.100.26063. I am testing it out on windows 8 64bit target machine. Thanks Parag Sheth From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Monday, August 25, 2014 4:50 PM To: Parag Sheth; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Thank you Parag. What version of the SCSI Compliance Test utility you use? What OS you were running the tests on? Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Monday, August 25, 2014 2:57 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I did review the changes and they seem ok except A new error is introduced in SCSI Compliance Test. (Test 1.21 Checking Identification Descriptors in VPD page 0x83 fails). It complains that it did not find identifier of type 3, 2 and 1. Thanks Parag Sheth From: Alex Chang [mailto:Alex.Chang at pmcs.com] Sent: Tuesday, August 19, 2014 4:10 PM To: Parag Sheth; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Parag, We had pushed a patch from Carolyn (Intel) after revision 1.3. I believe that are the changes you saw in nvmeinit.c. Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Tuesday, August 19, 2014 4:00 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, I noticed some changes in nvmeInit.c which are not related to the fixes you mentioned in the email below. I am comparing the patch against revision 1.3 source code. Thanks Parag Sheth From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Tue Aug 26 09:58:37 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Tue, 26 Aug 2014 16:58:37 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: <30847_1408150583_53EEAC37_30847_15235_1_E1729D5DBAB9E948BA87B76FDFA1298A398EA34F@BBYEXM02.pmc-sierra.internal> References: <30847_1408150583_53EEAC37_30847_15235_1_E1729D5DBAB9E948BA87B76FDFA1298A398EA34F@BBYEXM02.pmc-sierra.internal> Message-ID: Hi all, Thank you for your feedback, Carolyn and Parag. I plan to push this patch by Friday and please provide your approval when available. I had revised the patch based on the feedback: 1. Restored original Device ID page translation for Inquiry command via EUI-64 type. 2. Fixed NSID programming for Get Log Page command to be compliant with NVMe definition. 3. Revised some comments in source codes. Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran NVMe SCSI compliance tests on Windows 8.1 (results attached) - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver Finally, password is pmc123. Please provide your feedback as soon as possible. Thank you! Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: scsicomp_HCK_8.100.26795_0826.txt URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: PMC_SCSI_Comp_Fixes_N_Others_v1_08262014.zip Type: application/x-zip-compressed Size: 178301 bytes Desc: PMC_SCSI_Comp_Fixes_N_Others_v1_08262014.zip URL: From carolyn.d.foster at intel.com Tue Aug 26 12:02:10 2014 From: carolyn.d.foster at intel.com (Foster, Carolyn D) Date: Tue, 26 Aug 2014 19:02:10 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: <30847_1408150583_53EEAC37_30847_15235_1_E1729D5DBAB9E948BA87B76FDFA1298A398EA34F@BBYEXM02.pmc-sierra.internal> Message-ID: Hi Alex, The changes look good, thank you. We approve the patch. Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Tuesday, August 26, 2014 9:59 AM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, Thank you for your feedback, Carolyn and Parag. I plan to push this patch by Friday and please provide your approval when available. I had revised the patch based on the feedback: 1. Restored original Device ID page translation for Inquiry command via EUI-64 type. 2. Fixed NSID programming for Get Log Page command to be compliant with NVMe definition. 3. Revised some comments in source codes. Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran NVMe SCSI compliance tests on Windows 8.1 (results attached) - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver Finally, password is pmc123. Please provide your feedback as soon as possible. Thank you! Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Tue Aug 26 13:21:53 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Tue, 26 Aug 2014 20:21:53 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: <30847_1408150583_53EEAC37_30847_15235_1_E1729D5DBAB9E948BA87B76FDFA1298A398EA34F@BBYEXM02.pmc-sierra.internal> Message-ID: Thank you! Carolyn. Alex From: Foster, Carolyn D [mailto:carolyn.d.foster at intel.com] Sent: Tuesday, August 26, 2014 12:02 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: PMC Patch For SCSI Compliance Fixes And Others Hi Alex, The changes look good, thank you. We approve the patch. Carolyn From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Tuesday, August 26, 2014 9:59 AM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, Thank you for your feedback, Carolyn and Parag. I plan to push this patch by Friday and please provide your approval when available. I had revised the patch based on the feedback: 1. Restored original Device ID page translation for Inquiry command via EUI-64 type. 2. Fixed NSID programming for Get Log Page command to be compliant with NVMe definition. 3. Revised some comments in source codes. Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran NVMe SCSI compliance tests on Windows 8.1 (results attached) - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver Finally, password is pmc123. Please provide your feedback as soon as possible. Thank you! Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From parag.sheth at avagotech.com Thu Aug 28 14:57:11 2014 From: parag.sheth at avagotech.com (Parag Sheth) Date: Thu, 28 Aug 2014 14:57:11 -0700 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: <30847_1408150583_53EEAC37_30847_15235_1_E1729D5DBAB9E948BA87B76FDFA1298A398EA34F@BBYEXM02.pmc-sierra.internal> Message-ID: Hi Alex, Your changes look good. We approve the patch. Thanks Parag Sheth *From:* nvmewin-bounces at lists.openfabrics.org [mailto: nvmewin-bounces at lists.openfabrics.org] *On Behalf Of *Alex Chang *Sent:* Tuesday, August 26, 2014 9:59 AM *To:* Alex Chang; nvmewin at lists.openfabrics.org *Subject:* Re: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, Thank you for your feedback, Carolyn and Parag. I plan to push this patch by Friday and please provide your approval when available. I had revised the patch based on the feedback: 1. Restored original Device ID page translation for Inquiry command via EUI-64 type. 2. Fixed NSID programming for Get Log Page command to be compliant with NVMe definition. 3. Revised some comments in source codes. Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran NVMe SCSI compliance tests on Windows 8.1 (results attached) - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver Finally, password is pmc123. Please provide your feedback as soon as possible. Thank you! Alex *From:* nvmewin-bounces at lists.openfabrics.org [ mailto:nvmewin-bounces at lists.openfabrics.org ] *On Behalf Of *Alex Chang *Sent:* Friday, August 15, 2014 5:56 PM *To:* nvmewin at lists.openfabrics.org *Subject:* [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Thu Aug 28 15:31:02 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Thu, 28 Aug 2014 22:31:02 +0000 Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others In-Reply-To: References: <30847_1408150583_53EEAC37_30847_15235_1_E1729D5DBAB9E948BA87B76FDFA1298A398EA34F@BBYEXM02.pmc-sierra.internal> Message-ID: Thank you! Parag. Alex From: Parag Sheth [mailto:parag.sheth at avagotech.com] Sent: Thursday, August 28, 2014 2:57 PM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: RE: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi Alex, Your changes look good. We approve the patch. Thanks Parag Sheth From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Tuesday, August 26, 2014 9:59 AM To: Alex Chang; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Hi all, Thank you for your feedback, Carolyn and Parag. I plan to push this patch by Friday and please provide your approval when available. I had revised the patch based on the feedback: 1. Restored original Device ID page translation for Inquiry command via EUI-64 type. 2. Fixed NSID programming for Get Log Page command to be compliant with NVMe definition. 3. Revised some comments in source codes. Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran NVMe SCSI compliance tests on Windows 8.1 (results attached) - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver Finally, password is pmc123. Please provide your feedback as soon as possible. Thank you! Alex From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang Sent: Friday, August 15, 2014 5:56 PM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] PMC Patch For SCSI Compliance Fixes And Others Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: %%SENT_DATE%% Subject: Suspect Message Quarantined WARNING: The virus scanner was unable to scan an attachment in an email message sent to you. This attachment could possibly contain viruses or other malicious programs. The attachment could not be scanned for the following reasons: %%DESC%% The full message and the attachment have been stored in the quarantine. The identifier for this message is '%%QID%%'. Access the quarantine at: https://puremessage.pmc-sierra.bc.ca:28443/ For more information on PMC's Anti-Spam system: http://pmc-intranet/wiki/index.php/Outlook:Anti-Spam_FAQ IT Services PureMessage Admin Hi all, I am sending out this patch for your review/test. The password is pmc123. Please provide your feedback as soon as possible and I will start to collect approvals on August 27. This patch contains the following changes: 1. Fixed compiling errors when configured as /W3 and /WX. (nvmestd.c, nvmesnti.c) 2. Fixed to use Windows 8/SRB Extension defined Storage Request Block for Windows 8 and up. (nvmestd.c) 3. Fixed the following SCSI Compliance test failures: (nvmesnti.c) - Supporting Log Sense command. - Log Sense (Temperature Page) - Log Sense (Informational Exceptional Page) - Inquiry (Standard Page) - Inquiry (Device ID Page) - Inquiry (Unit Serial Page) - Read Capacity 16 (Need to take care of null CDB buffer) - Unmap (Anchor bit is not supported) 4. Fixed Get Log Page building, it needs to be 0's based number of DWORDs specified in DWORD 10 (nvmesnti.c). 5. Fixed a Report LUN bug that reports a zero-sized namespace when Namespace IDs are not contiguous (nvmesnti.c). 6. Fixed Flush command related bug that requires correct Namespace ID specified (nvmesnti.c). 7. Fixed system crash on Windows 8 and up when accessing CDB buffer in IO_StorPortNotification (nvmestd.c). Unit Tests: Tested the following on Windows 7, Server 2008, 8 and Server 2012: - Ran SCSI compliance tests - Ran SDStress - Ran IOmeter - Disk format (quick and slow) as MBR and GPT drive - Install/Uninstall, Enable/Disable driver In addition, I also ran the NVMe SCSI Compliance Test using HCK 8.100.26795 on Windows 8.1 without any errors (see the attached results). Thank you and have a great weekend! Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Thu Aug 28 15:45:15 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Thu, 28 Aug 2014 22:45:15 +0000 Subject: [nvmewin] NVMe Windows DB Is LOCKED - Pushing PMC Patch For SCSI Compliance Fixes And Others Message-ID: Locking NVMe Windows DB. Thanks, Alex nvmewin mailing list nvmewin at lists.openfabrics.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at pmcs.com Thu Aug 28 16:13:20 2014 From: Alex.Chang at pmcs.com (Alex Chang) Date: Thu, 28 Aug 2014 23:13:20 +0000 Subject: [nvmewin] NVMe Windows DB Is UNLOCKED - Pushing Patch From PMC For SCSI Compliance And SRB Ext Fixes Message-ID: Dear all, Thank you for reviewing/testing the patch from PMC. The patch had been pushed into the source base and a new tag called "Patch#27_SCSI_Compliance_N_SRB_Ext_Fixes" had been created under tags directory. Samsung is scheduled to submit next patch after re-basing with most current sources in the repository. Hi Suman and Judy, You may send out your patch when it's available for the community to review and test. Thanks, Alex nvmewin mailing list nvmewin at lists.openfabrics.org -------------- next part -------------- An HTML attachment was scrubbed... URL: