From judy.brock at ssi.samsung.com Tue Jan 15 07:20:26 2013 From: judy.brock at ssi.samsung.com (Judy Brock-SSI) Date: Tue, 15 Jan 2013 15:20:26 +0000 Subject: [nvmewin] OFA Windows NVMe driver question/ feedback In-Reply-To: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> Message-ID: <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> Hi, I have a question and a little feedback: 1. Currently, SntiBuildFirmwareImageDownloadCmd () always returns without generating valid PRPs due to the following code (numDwords is always zero): #define DEBUG_CHECK #ifdef DEBUG_CHECK if ((pSgl->NumberOfElements * sizeof(STOR_SCATTER_GATHER_ELEMENT)) >= (numDwords/sizeof(UINT32))) { /* In this case, must fail the command or create a temp buffer... */ ASSERT(FALSE); return; } #endif /* DEBUG_CHECK */ It looks like the intention was for numDwords to have a valid value that would have allowed the function to continue as long as a temp buffer wasn't needed but it was never set...is that the correct? 2. SntiBuildFirmwareImageDownloadCmd () also has no return value and the caller is assuming success , resulting in a malformed NVMe command being generated (PRP1 and PRP2 set all zeros) and sent out on behalf of SCSI write buffer. I believe this function should be changed to return SNTI_TRANSLATION_STATUS and SntiTranslateWriteBuffer() should be modified to check for success/failure rather than forging blindly ahead. 3. Seems like a few other routines which don't have any return value should also be changed to return SNTI_TRANSLATION_STATUS value( and all functions which call these routines be modified to check for success/failure): VOID SntiTranslateSglToPrp() VOID SntiBuildFirmwareActivateCmd() VOID SntiBuildSecuritySendReceiveCmd() Thanks, Judy -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.e.luse at intel.com Wed Jan 16 13:34:23 2013 From: paul.e.luse at intel.com (Luse, Paul E) Date: Wed, 16 Jan 2013 21:34:23 +0000 Subject: [nvmewin] Jan '13 NVMe OFA Windows Meeting Notes Message-ID: <82C9F782B054C94B9FC04A331649C77A07C1D60E@FMSMSX106.amr.corp.intel.com> ATTENDEES: Joe Breher - Lingua Data Neal Galbo - Micron Ray Robles - Intel Corporation Kwok Kong - IDT Arpit Patel - LSI Alex Chang - IDT John Carroll - Intel Corporation Nathan Obr - WDC Truong Nyuyen - Samsung Sarika Mehta - Intel Corporation Paul Luse - Intel Corporation NOTES: Chair transition - - Kwok is taking over chair from Paul per original plan to rotate OFA roles annually. Ray will look at transitioning the maintainer role after the first release this year to provide some overlap w/the chair transition. 2013 Preliminary Roadmap (to be finalized after some further email/meetings wrt specifics) 1H - 1.0e update - Windows8/Storport 8 Bucket (some subset of new features available with Win8/new storport) - Win7-64, Win7-32 to be used as the developer's test bed for patch submission 2H - Windows8/Storport 8 Bucket (some subset of new features available with Win8/new storport) - Windows8 -64/Win7-32 to be used as the developer's test bed for patch submission - Start testing on available HW; no patches will be accepted however that address IHV HW specific issues (so submitter needs to be certain that their patch is against a real SW bug that can be duplicated on QEMU or otherwise explained to be a general driver issue) - 1.1 placeholder - SGL - need HW to test or QEMU - 1 1.1 dual PCIe interfaces; unclear applicability for Windows (doesn't seem like it) so likely not a candidate Thanks Paul _________________________________________ Paul Luse Sr. Staff Engineer Communications and Storage Infrastructure Group Desk: 480.554.3688, Mobile: 480.334.4630 -------------- next part -------------- An HTML attachment was scrubbed... URL: From judy.brock at ssi.samsung.com Mon Jan 21 10:25:09 2013 From: judy.brock at ssi.samsung.com (Judy Brock-SSI) Date: Mon, 21 Jan 2013 18:25:09 +0000 Subject: [nvmewin] support for NVME DataSet Mgmt In-Reply-To: <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> Message-ID: <36E8D38D6B771A4BBDB1C0D800158A512FA78B7D@SSIEXCH-MB2.ssi.samsung.com> Hello, I was wondering why the driver doesn't support the SCSI Unmap command. The comment in SntiTranslateCommand() says: " ...UNMAP (NVME_DATASET_MANAGEMENT is required for translation and this command will not be supported in the Windows open source driver)" but the driver does in fact support NVMe dataset mgmnt - although the only path to it is by way of an NVMe IOCTL passthru. Was the IOCTL path perhaps added after the main SCSI translation path and is it the case that we would now want to add support for SCSI unmap/translation to DataSetMgmt? Thanks, Judy -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.e.luse at intel.com Mon Jan 21 10:42:08 2013 From: paul.e.luse at intel.com (Luse, Paul E) Date: Mon, 21 Jan 2013 18:42:08 +0000 Subject: [nvmewin] support for NVME DataSet Mgmt In-Reply-To: <36E8D38D6B771A4BBDB1C0D800158A512FA78B7D@SSIEXCH-MB2.ssi.samsung.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA78B7D@SSIEXCH-MB2.ssi.samsung.com> Message-ID: <82C9F782B054C94B9FC04A331649C77A07C21DF4@FMSMSX106.amr.corp.intel.com> It's only because at the time Windows (storport) didn't support passing TRIM through to the miniport. When we talked about the roadmap for this year, this is one of those items (and its small) now that Win8 and 2012 pass it through the driver can field it. No specific date was determined though, as soon as someone contributes it, it will be there J Thx Paul From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Judy Brock-SSI Sent: Monday, January 21, 2013 11:25 AM To: 'nvmewin at lists.openfabrics.org' Subject: [nvmewin] support for NVME DataSet Mgmt Hello, I was wondering why the driver doesn't support the SCSI Unmap command. The comment in SntiTranslateCommand() says: " ...UNMAP (NVME_DATASET_MANAGEMENT is required for translation and this command will not be supported in the Windows open source driver)" but the driver does in fact support NVMe dataset mgmnt - although the only path to it is by way of an NVMe IOCTL passthru. Was the IOCTL path perhaps added after the main SCSI translation path and is it the case that we would now want to add support for SCSI unmap/translation to DataSetMgmt? Thanks, Judy -------------- next part -------------- An HTML attachment was scrubbed... URL: From Kwok.Kong at idt.com Mon Jan 21 11:16:50 2013 From: Kwok.Kong at idt.com (Kong, Kwok) Date: Mon, 21 Jan 2013 19:16:50 +0000 Subject: [nvmewin] support for NVME DataSet Mgmt In-Reply-To: <82C9F782B054C94B9FC04A331649C77A07C21DF4@FMSMSX106.amr.corp.intel.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA78B7D@SSIEXCH-MB2.ssi.samsung.com> <82C9F782B054C94B9FC04A331649C77A07C21DF4@FMSMSX106.amr.corp.intel.com> Message-ID: <05CD7821AE397547A01AC160FBC231474BC6B312@corpmail1.na.ads.idt.com> We decided not to implement any features that Windows 7 did not support at the time. This is a feature that we can add this year once we add the support of Windows 8. I'll set up a meeting soon to discuss the features that we want to add to the driver this year. It will be great if Samsung can contribute to the new features development. This is a joint effort and we need everyone to participate and contribute. Please send out any features that you would like to add to the current driver. I'll collect them all and set up a call to discuss. I need all your help to improve the Windows driver. Thanks -Kwok From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Luse, Paul E Sent: Monday, January 21, 2013 10:42 AM To: Judy Brock-SSI; 'nvmewin at lists.openfabrics.org' Subject: Re: [nvmewin] support for NVME DataSet Mgmt It's only because at the time Windows (storport) didn't support passing TRIM through to the miniport. When we talked about the roadmap for this year, this is one of those items (and its small) now that Win8 and 2012 pass it through the driver can field it. No specific date was determined though, as soon as someone contributes it, it will be there :) Thx Paul From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Judy Brock-SSI Sent: Monday, January 21, 2013 11:25 AM To: 'nvmewin at lists.openfabrics.org' Subject: [nvmewin] support for NVME DataSet Mgmt Hello, I was wondering why the driver doesn't support the SCSI Unmap command. The comment in SntiTranslateCommand() says: " ...UNMAP (NVME_DATASET_MANAGEMENT is required for translation and this command will not be supported in the Windows open source driver)" but the driver does in fact support NVMe dataset mgmnt - although the only path to it is by way of an NVMe IOCTL passthru. Was the IOCTL path perhaps added after the main SCSI translation path and is it the case that we would now want to add support for SCSI unmap/translation to DataSetMgmt? Thanks, Judy -------------- next part -------------- An HTML attachment was scrubbed... URL: From raymond.c.robles at intel.com Mon Jan 21 14:27:39 2013 From: raymond.c.robles at intel.com (Robles, Raymond C) Date: Mon, 21 Jan 2013 22:27:39 +0000 Subject: [nvmewin] OFA Windows NVMe driver question/ feedback In-Reply-To: <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> Message-ID: <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> Hi Judy, Sorry for the late response on this... I've been out on medical leave and am currently catching up on all email. See below for my comments in BOLD. Thanks, Ray From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Judy Brock-SSI Sent: Tuesday, January 15, 2013 8:20 AM To: nvmewin at lists.openfabrics.org Subject: [nvmewin] OFA Windows NVMe driver question/ feedback Hi, I have a question and a little feedback: 1. Currently, SntiBuildFirmwareImageDownloadCmd () always returns without generating valid PRPs due to the following code (numDwords is always zero): #define DEBUG_CHECK #ifdef DEBUG_CHECK if ((pSgl->NumberOfElements * sizeof(STOR_SCATTER_GATHER_ELEMENT)) >= (numDwords/sizeof(UINT32))) { /* In this case, must fail the command or create a temp buffer... */ ASSERT(FALSE); return; } #endif /* DEBUG_CHECK */ It looks like the intention was for numDwords to have a valid value that would have allowed the function to continue as long as a temp buffer wasn't needed but it was never set...is that the correct? [Robles, Raymond C] This is correct. I'm not sure when this was added (was added after the original implementation) but you are correct in your assertion. The check should be to see that DWORD 10 (which does contain the correct value for nunDwords) was used in order to check if a temp buffer is needed. At the time of the development of this code, this was a command that was not easily testable on the QEMU VM. This is a bug that needs to be fixed and is a good candidate for contribution to the open source driver. 2. SntiBuildFirmwareImageDownloadCmd () also has no return value and the caller is assuming success , resulting in a malformed NVMe command being generated (PRP1 and PRP2 set all zeros) and sent out on behalf of SCSI write buffer. I believe this function should be changed to return SNTI_TRANSLATION_STATUS and SntiTranslateWriteBuffer() should be modified to check for success/failure rather than forging blindly ahead.[Robles, Raymond C] Many of the SntiBuildXxx() functions do not have return values. This was by design when I first coded these. The reason being that if the code made it to this point (where all sanity checks had passed and we just needed to build the SQE), these functions would just build the SQE in the temp SQE unit within the scratch memory space in the SRB extension. There was never any intention to perform any types of checks within these "build" functions. They were merely helper functions... hence no return values. But as the driver evolved and the robustness grew, some of these functions had checks added to them (just like what you are pointing out) and they really should be returning values now. So, yes, I do agree this function should return a value. However, it should return SNTI_STATUS. My original intention was that all internal return values for helper functions should try to use SNTI_STATUS and all the first level major interface functions would return SNTI_TRANSLATION_STATUS. Of course there are always exceptions, but this was the guideline that I tried to implement and follow. This would be a good candidate for a patch from a company using the driver. 3. Seems like a few other routines which don't have any return value should also be changed to return SNTI_TRANSLATION_STATUS value( and all functions which call these routines be modified to check for success/failure):[Robles, Raymond C] Agreed, with the exception of SntiTranslateSglToPrp(). See above response for all other functions. SntiTranslateSglToPrp() is a special case and does not return a value by design. I believe this still holds true today. The sole purpose of this function is to translate a Windows SGL to PRPs (entries, list, or combo of both). There are no scenarios in this function that would require a negative return value. When this function is invoked, a good SGL has been obtained and the needed PRP memory has already been allocated at init time (we wouldn't be at this point if either of these points were not true). Therefore, the translation process will not fail with the previous being true. A good SGL will always translate to correct PRP entries/list. VOID SntiTranslateSglToPrp() VOID SntiBuildFirmwareActivateCmd() VOID SntiBuildSecuritySendReceiveCmd() Thanks, Judy -------------- next part -------------- An HTML attachment was scrubbed... URL: From Kwok.Kong at idt.com Fri Jan 25 11:40:38 2013 From: Kwok.Kong at idt.com (Kong, Kwok) Date: Fri, 25 Jan 2013 19:40:38 +0000 Subject: [nvmewin] NVMe Windows Workgroup Meeting Message-ID: <05CD7821AE397547A01AC160FBC231474BC6E900@corpmail1.na.ads.idt.com> When: Wednesday, February 13, 2013 1:00 PM-2:00 PM (UTC-08:00) Pacific Time (US & Canada). Where: Bridge Note: The GMT offset above does not reflect daylight saving time adjustments. *~*~*~*~*~*~*~*~*~* 888-2709936 Part code = 811938 Use this link to view shared document. https://www.teleconference.att.com/servlet/ATTClogin Agenda: - Discuss 2013 Roadmap - Ownership of new features - Opens Here is Paul's meeting notes for the last meeting on the roadmap discussion. I would like have a proposal after this meeting on the actual roadmap. Please email to the group on what you would like to see in the roadmap before the call. I would also ask for participation in the development of new features from all of you. If we don't have anyone signed up to develop new features, then we won't add new features to the roadmap. 1H - 1.0e update - Windows8/Storport 8 Bucket (some subset of new features available with Win8/new storport) - Win7-64, Win7-32 to be used as the developer's test bed for patch submission 2H - Windows8/Storport 8 Bucket (some subset of new features available with Win8/new storport) - Windows8 -64/Win7-32 to be used as the developer's test bed for patch submission - Start testing on available HW; no patches will be accepted however that address IHV HW specific issues (so submitter needs to be certain that their patch is against a real SW bug that can be duplicated on QEMU or otherwise explained to be a general driver issue) - 1.1 placeholder - SGL - need HW to test or QEMU - 1 1.1 dual PCIe interfaces; unclear applicability for Windows (doesn't seem like it) so likely not a candidate -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/calendar Size: 3257 bytes Desc: not available URL: From Alex.Chang at idt.com Fri Jan 25 15:27:12 2013 From: Alex.Chang at idt.com (Chang, Alex) Date: Fri, 25 Jan 2013 23:27:12 +0000 Subject: [nvmewin] ***UNCHECKED*** New Patch - Mode Select In-Reply-To: <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> Message-ID: <548C5470AAD9DA4A85D259B663190D361FFCFE8D@corpmail1.na.ads.idt.com> Hi all, I am adding a patch to fix a bug related to Mode Select command when users enable/disable Volatile Write Cache. The changes I made are within SntiTranslateModeData routine of nvmeSnti.c to correctly locate the page code and program Dword 11 of NVMe submission entry before issuing Set Features command. The password is idt123. Please review it and provide feedbacks in next couple weeks. Thanks, Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: source_012513.zip Type: application/x-zip-compressed Size: 165206 bytes Desc: source_012513.zip URL: From Dharani.Kotte at sandisk.com Fri Jan 25 15:45:41 2013 From: Dharani.Kotte at sandisk.com (Dharani Kotte) Date: Fri, 25 Jan 2013 23:45:41 +0000 Subject: [nvmewin] New Patch - Mode Select In-Reply-To: <548C5470AAD9DA4A85D259B663190D361FFCFE8D@corpmail1.na.ads.idt.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> <548C5470AAD9DA4A85D259B663190D361FFCFE8D@corpmail1.na.ads.idt.com> Message-ID: <23EC73C80FB59046A6B7B8EB7B38265908971A1A@SACMBXIP01.sdcorp.global.sandisk.com> Hi Alex, In the file nvmeSnti.c and function SntiTranslateModeData() /* Mode Select 10 */ pModeHeader10 = (PMODE_PARAMETER_HEADER10)(GET_DATA_BUFFER(pSrb)); #pragma prefast(suppress:6011,"This pointer is not NULL") blockDescLength = pModeHeader6->BlockDescriptorLength; // BUG - pModeHeader6 is not initialized probably it should be pModeHeader10 thanks, Dharani. From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Chang, Alex Sent: Friday, January 25, 2013 3:27 PM To: nvmewin at lists.openfabrics.org Subject: [WARNING - ENCRYPTED ATTACHMENT NOT VIRUS SCANNED] [nvmewin] ***UNCHECKED*** New Patch - Mode Select Hi all, I am adding a patch to fix a bug related to Mode Select command when users enable/disable Volatile Write Cache. The changes I made are within SntiTranslateModeData routine of nvmeSnti.c to correctly locate the page code and program Dword 11 of NVMe submission entry before issuing Set Features command. The password is idt123. Please review it and provide feedbacks in next couple weeks. Thanks, Alex ________________________________ PLEASE NOTE: The information contained in this electronic mail message is intended only for the use of the designated recipient(s) named above. If the reader of this message is not the intended recipient, you are hereby notified that you have received this message in error and that any review, dissemination, distribution, or copying of this message is strictly prohibited. If you have received this communication in error, please notify the sender by telephone or e-mail (as shown above) immediately and destroy any and all copies of this message in your possession (whether hard copies or electronically stored copies). -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at idt.com Fri Jan 25 15:56:43 2013 From: Alex.Chang at idt.com (Chang, Alex) Date: Fri, 25 Jan 2013 23:56:43 +0000 Subject: [nvmewin] New Patch - Mode Select In-Reply-To: <23EC73C80FB59046A6B7B8EB7B38265908971A1A@SACMBXIP01.sdcorp.global.sandisk.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> <548C5470AAD9DA4A85D259B663190D361FFCFE8D@corpmail1.na.ads.idt.com> <23EC73C80FB59046A6B7B8EB7B38265908971A1A@SACMBXIP01.sdcorp.global.sandisk.com> Message-ID: <548C5470AAD9DA4A85D259B663190D361FFCFEA6@corpmail1.na.ads.idt.com> Good catch, Dharani. Hi Ray, Is this just a typo? Thanks, Alex ________________________________ From: Dharani Kotte [mailto:Dharani.Kotte at sandisk.com] Sent: Friday, January 25, 2013 3:46 PM To: Chang, Alex; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Hi Alex, In the file nvmeSnti.c and function SntiTranslateModeData() /* Mode Select 10 */ pModeHeader10 = (PMODE_PARAMETER_HEADER10)(GET_DATA_BUFFER(pSrb)); #pragma prefast(suppress:6011,"This pointer is not NULL") blockDescLength = pModeHeader6->BlockDescriptorLength; // BUG - pModeHeader6 is not initialized probably it should be pModeHeader10 thanks, Dharani. From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Chang, Alex Sent: Friday, January 25, 2013 3:27 PM To: nvmewin at lists.openfabrics.org Subject: [WARNING - ENCRYPTED ATTACHMENT NOT VIRUS SCANNED] [nvmewin] ***UNCHECKED*** New Patch - Mode Select Hi all, I am adding a patch to fix a bug related to Mode Select command when users enable/disable Volatile Write Cache. The changes I made are within SntiTranslateModeData routine of nvmeSnti.c to correctly locate the page code and program Dword 11 of NVMe submission entry before issuing Set Features command. The password is idt123. Please review it and provide feedbacks in next couple weeks. Thanks, Alex ________________________________ PLEASE NOTE: The information contained in this electronic mail message is intended only for the use of the designated recipient(s) named above. If the reader of this message is not the intended recipient, you are hereby notified that you have received this message in error and that any review, dissemination, distribution, or copying of this message is strictly prohibited. If you have received this communication in error, please notify the sender by telephone or e-mail (as shown above) immediately and destroy any and all copies of this message in your possession (whether hard copies or electronically stored copies). -------------- next part -------------- An HTML attachment was scrubbed... URL: From Dharani.Kotte at sandisk.com Fri Jan 25 16:03:12 2013 From: Dharani.Kotte at sandisk.com (Dharani Kotte) Date: Sat, 26 Jan 2013 00:03:12 +0000 Subject: [nvmewin] New Patch - Mode Select In-Reply-To: <548C5470AAD9DA4A85D259B663190D361FFCFEA6@corpmail1.na.ads.idt.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> <548C5470AAD9DA4A85D259B663190D361FFCFE8D@corpmail1.na.ads.idt.com> <23EC73C80FB59046A6B7B8EB7B38265908971A1A@SACMBXIP01.sdcorp.global.sandisk.com> <548C5470AAD9DA4A85D259B663190D361FFCFEA6@corpmail1.na.ads.idt.com> Message-ID: <23EC73C80FB59046A6B7B8EB7B38265908971A65@SACMBXIP01.sdcorp.global.sandisk.com> Hi Alex, Can you please correct the print as well missing %x in the file nvmeInit.c and function NVMeInitCallback() case NVMeWaitOnLearnMapping: if ((pCplEntry->DW3.SF.SC == 0) && (pCplEntry->DW3.SF.SCT == 0)) { PRES_MAPPING_TBL pRMT = &pAE->ResMapTbl; /* * see if we still have more core/vector mapping to learn * or if we're ready to redo the queues based on the new map */ pAE->DriverState.StateChkCount = 0; if (pAE->LearningCores < pRMT->NumActiveCores) { pAE->DriverState.NextDriverState = NVMeWaitOnLearnMapping; } else { #if DBG PRES_MAPPING_TBL pRMT = &pAE->ResMapTbl; PCORE_TBL pCT = NULL; ULONG i; /* print out the learned table */ StorPortDebugPrint(INFO, "Learning Complete. Core Table:\n"); for (i=0; i < pRMT->NumActiveCores; i++) { pCT = pRMT->pCoreTbl + i; StorPortDebugPrint(INFO, "\tCore(0x%x) MSID(0x%x) QueuePair(0x%x)\n", pCT->CoreNum, pCT->MsiMsgID, pCT->SubQueue); } pAE->LearningComplete = TRUE; #endif pAE->DriverState.NextDriverState = NVMeWaitOnReSetupQueues; } } else { PRES_MAPPING_TBL pRMT = &pAE->ResMapTbl; /* possibly no NS exists at all, either way this isn't fatal */ StorPortDebugPrint(INFO, "NVMeInitCallback: WARNING: no learning possible, SC 0x%x SCT 0x%x\n", // BUG pCplEntry->DW3.SF.SC, pCplEntry->DW3.SF.SCT); pAE->LearningCores = pRMT->NumActiveCores; pAE->DriverState.NextDriverState = NVMeStartComplete; } break; thanks, Dharani. From: Chang, Alex [mailto:Alex.Chang at idt.com] Sent: Friday, January 25, 2013 3:57 PM To: Dharani Kotte; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Good catch, Dharani. Hi Ray, Is this just a typo? Thanks, Alex ________________________________ From: Dharani Kotte [mailto:Dharani.Kotte at sandisk.com] Sent: Friday, January 25, 2013 3:46 PM To: Chang, Alex; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Hi Alex, In the file nvmeSnti.c and function SntiTranslateModeData() /* Mode Select 10 */ pModeHeader10 = (PMODE_PARAMETER_HEADER10)(GET_DATA_BUFFER(pSrb)); #pragma prefast(suppress:6011,"This pointer is not NULL") blockDescLength = pModeHeader6->BlockDescriptorLength; // BUG - pModeHeader6 is not initialized probably it should be pModeHeader10 thanks, Dharani. From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Chang, Alex Sent: Friday, January 25, 2013 3:27 PM To: nvmewin at lists.openfabrics.org Subject: [WARNING - ENCRYPTED ATTACHMENT NOT VIRUS SCANNED] [nvmewin] ***UNCHECKED*** New Patch - Mode Select Hi all, I am adding a patch to fix a bug related to Mode Select command when users enable/disable Volatile Write Cache. The changes I made are within SntiTranslateModeData routine of nvmeSnti.c to correctly locate the page code and program Dword 11 of NVMe submission entry before issuing Set Features command. The password is idt123. Please review it and provide feedbacks in next couple weeks. Thanks, Alex ________________________________ PLEASE NOTE: The information contained in this electronic mail message is intended only for the use of the designated recipient(s) named above. If the reader of this message is not the intended recipient, you are hereby notified that you have received this message in error and that any review, dissemination, distribution, or copying of this message is strictly prohibited. If you have received this communication in error, please notify the sender by telephone or e-mail (as shown above) immediately and destroy any and all copies of this message in your possession (whether hard copies or electronically stored copies). -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at idt.com Fri Jan 25 16:08:47 2013 From: Alex.Chang at idt.com (Chang, Alex) Date: Sat, 26 Jan 2013 00:08:47 +0000 Subject: [nvmewin] New Patch - Mode Select In-Reply-To: <23EC73C80FB59046A6B7B8EB7B38265908971A65@SACMBXIP01.sdcorp.global.sandisk.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> <548C5470AAD9DA4A85D259B663190D361FFCFE8D@corpmail1.na.ads.idt.com> <23EC73C80FB59046A6B7B8EB7B38265908971A1A@SACMBXIP01.sdcorp.global.sandisk.com> <548C5470AAD9DA4A85D259B663190D361FFCFEA6@corpmail1.na.ads.idt.com> <23EC73C80FB59046A6B7B8EB7B38265908971A65@SACMBXIP01.sdcorp.global.sandisk.com> Message-ID: <548C5470AAD9DA4A85D259B663190D361FFCFEC0@corpmail1.na.ads.idt.com> Another typo, huh? I will fix it as well. Thanks, Alex ________________________________ From: Dharani Kotte [mailto:Dharani.Kotte at sandisk.com] Sent: Friday, January 25, 2013 4:03 PM To: Chang, Alex; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Hi Alex, Can you please correct the print as well missing %x in the file nvmeInit.c and function NVMeInitCallback() case NVMeWaitOnLearnMapping: if ((pCplEntry->DW3.SF.SC == 0) && (pCplEntry->DW3.SF.SCT == 0)) { PRES_MAPPING_TBL pRMT = &pAE->ResMapTbl; /* * see if we still have more core/vector mapping to learn * or if we're ready to redo the queues based on the new map */ pAE->DriverState.StateChkCount = 0; if (pAE->LearningCores < pRMT->NumActiveCores) { pAE->DriverState.NextDriverState = NVMeWaitOnLearnMapping; } else { #if DBG PRES_MAPPING_TBL pRMT = &pAE->ResMapTbl; PCORE_TBL pCT = NULL; ULONG i; /* print out the learned table */ StorPortDebugPrint(INFO, "Learning Complete. Core Table:\n"); for (i=0; i < pRMT->NumActiveCores; i++) { pCT = pRMT->pCoreTbl + i; StorPortDebugPrint(INFO, "\tCore(0x%x) MSID(0x%x) QueuePair(0x%x)\n", pCT->CoreNum, pCT->MsiMsgID, pCT->SubQueue); } pAE->LearningComplete = TRUE; #endif pAE->DriverState.NextDriverState = NVMeWaitOnReSetupQueues; } } else { PRES_MAPPING_TBL pRMT = &pAE->ResMapTbl; /* possibly no NS exists at all, either way this isn't fatal */ StorPortDebugPrint(INFO, "NVMeInitCallback: WARNING: no learning possible, SC 0x%x SCT 0x%x\n", // BUG pCplEntry->DW3.SF.SC, pCplEntry->DW3.SF.SCT); pAE->LearningCores = pRMT->NumActiveCores; pAE->DriverState.NextDriverState = NVMeStartComplete; } break; thanks, Dharani. From: Chang, Alex [mailto:Alex.Chang at idt.com] Sent: Friday, January 25, 2013 3:57 PM To: Dharani Kotte; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Good catch, Dharani. Hi Ray, Is this just a typo? Thanks, Alex ________________________________ From: Dharani Kotte [mailto:Dharani.Kotte at sandisk.com] Sent: Friday, January 25, 2013 3:46 PM To: Chang, Alex; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Hi Alex, In the file nvmeSnti.c and function SntiTranslateModeData() /* Mode Select 10 */ pModeHeader10 = (PMODE_PARAMETER_HEADER10)(GET_DATA_BUFFER(pSrb)); #pragma prefast(suppress:6011,"This pointer is not NULL") blockDescLength = pModeHeader6->BlockDescriptorLength; // BUG - pModeHeader6 is not initialized probably it should be pModeHeader10 thanks, Dharani. From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Chang, Alex Sent: Friday, January 25, 2013 3:27 PM To: nvmewin at lists.openfabrics.org Subject: [WARNING - ENCRYPTED ATTACHMENT NOT VIRUS SCANNED] [nvmewin] ***UNCHECKED*** New Patch - Mode Select Hi all, I am adding a patch to fix a bug related to Mode Select command when users enable/disable Volatile Write Cache. The changes I made are within SntiTranslateModeData routine of nvmeSnti.c to correctly locate the page code and program Dword 11 of NVMe submission entry before issuing Set Features command. The password is idt123. Please review it and provide feedbacks in next couple weeks. Thanks, Alex ________________________________ PLEASE NOTE: The information contained in this electronic mail message is intended only for the use of the designated recipient(s) named above. If the reader of this message is not the intended recipient, you are hereby notified that you have received this message in error and that any review, dissemination, distribution, or copying of this message is strictly prohibited. If you have received this communication in error, please notify the sender by telephone or e-mail (as shown above) immediately and destroy any and all copies of this message in your possession (whether hard copies or electronically stored copies). -------------- next part -------------- An HTML attachment was scrubbed... URL: From raymond.c.robles at intel.com Fri Jan 25 17:13:18 2013 From: raymond.c.robles at intel.com (Robles, Raymond C) Date: Sat, 26 Jan 2013 01:13:18 +0000 Subject: [nvmewin] New Patch - Mode Select In-Reply-To: <548C5470AAD9DA4A85D259B663190D361FFCFEA6@corpmail1.na.ads.idt.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> <548C5470AAD9DA4A85D259B663190D361FFCFE8D@corpmail1.na.ads.idt.com> <23EC73C80FB59046A6B7B8EB7B38265908971A1A@SACMBXIP01.sdcorp.global.sandisk.com> <548C5470AAD9DA4A85D259B663190D361FFCFEA6@corpmail1.na.ads.idt.com> Message-ID: <49158E750348AA499168FD41D88983606119ED4F@FMSMSX105.amr.corp.intel.com> Hi Alex, Yes this is a copy and paste error. Dharani is correct... it should read pModeHeader10->BlockDescriptorLength; Did you want to change this in your patch since it is directly related to Mode Select? Thanks, Ray From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Chang, Alex Sent: Friday, January 25, 2013 4:57 PM To: Dharani Kotte; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] New Patch - Mode Select Good catch, Dharani. Hi Ray, Is this just a typo? Thanks, Alex ________________________________ From: Dharani Kotte [mailto:Dharani.Kotte at sandisk.com] Sent: Friday, January 25, 2013 3:46 PM To: Chang, Alex; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Hi Alex, In the file nvmeSnti.c and function SntiTranslateModeData() /* Mode Select 10 */ pModeHeader10 = (PMODE_PARAMETER_HEADER10)(GET_DATA_BUFFER(pSrb)); #pragma prefast(suppress:6011,"This pointer is not NULL") blockDescLength = pModeHeader6->BlockDescriptorLength; // BUG - pModeHeader6 is not initialized probably it should be pModeHeader10 thanks, Dharani. From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Chang, Alex Sent: Friday, January 25, 2013 3:27 PM To: nvmewin at lists.openfabrics.org Subject: [WARNING - ENCRYPTED ATTACHMENT NOT VIRUS SCANNED] [nvmewin] ***UNCHECKED*** New Patch - Mode Select Hi all, I am adding a patch to fix a bug related to Mode Select command when users enable/disable Volatile Write Cache. The changes I made are within SntiTranslateModeData routine of nvmeSnti.c to correctly locate the page code and program Dword 11 of NVMe submission entry before issuing Set Features command. The password is idt123. Please review it and provide feedbacks in next couple weeks. Thanks, Alex ________________________________ PLEASE NOTE: The information contained in this electronic mail message is intended only for the use of the designated recipient(s) named above. If the reader of this message is not the intended recipient, you are hereby notified that you have received this message in error and that any review, dissemination, distribution, or copying of this message is strictly prohibited. If you have received this communication in error, please notify the sender by telephone or e-mail (as shown above) immediately and destroy any and all copies of this message in your possession (whether hard copies or electronically stored copies). -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alex.Chang at idt.com Fri Jan 25 17:20:12 2013 From: Alex.Chang at idt.com (Chang, Alex) Date: Sat, 26 Jan 2013 01:20:12 +0000 Subject: [nvmewin] New Patch - Mode Select In-Reply-To: <49158E750348AA499168FD41D88983606119ED4F@FMSMSX105.amr.corp.intel.com> References: <36E8D38D6B771A4BBDB1C0D800158A512FA5DAF0@SSIEXCH-MB2.ssi.samsung.com> <36E8D38D6B771A4BBDB1C0D800158A512FA7551A@SSIEXCH-MB2.ssi.samsung.com> <49158E750348AA499168FD41D88983606119BA17@FMSMSX105.amr.corp.intel.com> <548C5470AAD9DA4A85D259B663190D361FFCFE8D@corpmail1.na.ads.idt.com> <23EC73C80FB59046A6B7B8EB7B38265908971A1A@SACMBXIP01.sdcorp.global.sandisk.com> <548C5470AAD9DA4A85D259B663190D361FFCFEA6@corpmail1.na.ads.idt.com> <49158E750348AA499168FD41D88983606119ED4F@FMSMSX105.amr.corp.intel.com> Message-ID: <548C5470AAD9DA4A85D259B663190D361FFCFEE1@corpmail1.na.ads.idt.com> Thanks, Ray. I will correct it, too. Have a great weekend! Alex ________________________________ From: Robles, Raymond C [mailto:raymond.c.robles at intel.com] Sent: Friday, January 25, 2013 5:13 PM To: Chang, Alex; Dharani Kotte; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Hi Alex, Yes this is a copy and paste error. Dharani is correct... it should read pModeHeader10->BlockDescriptorLength; Did you want to change this in your patch since it is directly related to Mode Select? Thanks, Ray From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Chang, Alex Sent: Friday, January 25, 2013 4:57 PM To: Dharani Kotte; nvmewin at lists.openfabrics.org Subject: Re: [nvmewin] New Patch - Mode Select Good catch, Dharani. Hi Ray, Is this just a typo? Thanks, Alex ________________________________ From: Dharani Kotte [mailto:Dharani.Kotte at sandisk.com] Sent: Friday, January 25, 2013 3:46 PM To: Chang, Alex; nvmewin at lists.openfabrics.org Subject: RE: New Patch - Mode Select Hi Alex, In the file nvmeSnti.c and function SntiTranslateModeData() /* Mode Select 10 */ pModeHeader10 = (PMODE_PARAMETER_HEADER10)(GET_DATA_BUFFER(pSrb)); #pragma prefast(suppress:6011,"This pointer is not NULL") blockDescLength = pModeHeader6->BlockDescriptorLength; // BUG - pModeHeader6 is not initialized probably it should be pModeHeader10 thanks, Dharani. From: nvmewin-bounces at lists.openfabrics.org [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Chang, Alex Sent: Friday, January 25, 2013 3:27 PM To: nvmewin at lists.openfabrics.org Subject: [WARNING - ENCRYPTED ATTACHMENT NOT VIRUS SCANNED] [nvmewin] ***UNCHECKED*** New Patch - Mode Select Hi all, I am adding a patch to fix a bug related to Mode Select command when users enable/disable Volatile Write Cache. The changes I made are within SntiTranslateModeData routine of nvmeSnti.c to correctly locate the page code and program Dword 11 of NVMe submission entry before issuing Set Features command. The password is idt123. Please review it and provide feedbacks in next couple weeks. Thanks, Alex ________________________________ PLEASE NOTE: The information contained in this electronic mail message is intended only for the use of the designated recipient(s) named above. If the reader of this message is not the intended recipient, you are hereby notified that you have received this message in error and that any review, dissemination, distribution, or copying of this message is strictly prohibited. If you have received this communication in error, please notify the sender by telephone or e-mail (as shown above) immediately and destroy any and all copies of this message in your possession (whether hard copies or electronically stored copies). -------------- next part -------------- An HTML attachment was scrubbed... URL: