From justina_lai at phison.com Thu May 25 01:02:34 2017 From: justina_lai at phison.com (Justina Lai) Date: Thu, 25 May 2017 08:02:34 +0000 Subject: [nvmewin] Compatibility issue with 1.5 version nvme driver In-Reply-To: <61e5436482f94a7f9a13ddb98942cf1b@ExMBX2.phison.com> References: <72e3a49d013142819ddb77a9a2c941f3@ExMBX2.phison.com> <61e5436482f94a7f9a13ddb98942cf1b@ExMBX2.phison.com> Message-ID: <7125daf8d16c4290bbf16208e2dbe16e@ExMBX2.phison.com> Dear Sir/Madam, We are facing compatibility issue on our PS5007 NVMe device with recent 1.5 version nvme driver. Please check below issue description. Phison PS5007 supports 7 IO queues, and if we use PS5007 with OFA driver on the platform core number>7, ex: 8-core or 12-core PC, we will see PC hang up and cannot enter OS like below: [cid:image001.jpg at 01D2D56F.5A9D7380] After debugging on our side, we found the fail is caused by below flow: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- .......... 1. SntiTranslateModeSense() .......... 2.IoCompletionRoutine() if (pDpc != NULL) { ASSERT(pAE->ntldrDump == FALSE); if (pAE->MultipleCoresToSingleQueueFlag) { StorPortAcquireSpinLock(pAE, StartIoLock, NULL, &StartLockHandle); ----------------------> execute lock } else { StorPortAcquireSpinLock(pAE, DpcLock, pDpc, &DpcLockhandle); } } ......... callStorportNotification = pSrbExtension->pNvmeCompletionRoutine(pAE, (PVOID)pSrbExtension) && (pSrbExtension->pSrb != NULL); ....... 3.SntiTranslateModeSenseResponse() ....... case MODE_SENSE_RETURN_ALL: ....... if (supportsVwc == TRUE) { pSrbExt->pNvmeCompletionRoutine = SntiCompletionCallbackRoutine; /* Finally, make sure we issue the GET FEATURES command */ SntiBuildGetFeaturesCmd(pSrbExt, VOLATILE_WRITE_CACHE); ioStarted = ProcessIo(pSrbExt->pNvmeDevExt, pSrbExt, NVME_QUEUE_TYPE_ADMIN, TRUE); 4.ProcessIo() ........ if (AcquireLock == TRUE) { StorPortAcquireSpinLock(pAdapterExtension, StartIoLock, NULL, &hStartIoLock); ------------------------> double execute lock and cause (Assertion failure - code c0000420) } --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Since many users are now using our PS5007 device with 8-core or 12-core PC, they are facing this issue right now. Could you please help to modify driver to solve this problem asap? Any unclear point, please kindly let us know. Thank you very much for the help! Best Regards, Justina Lai #5707 This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.jpg Type: image/jpeg Size: 11633 bytes Desc: image001.jpg URL: From raymond.c.robles at intel.com Thu May 25 10:35:44 2017 From: raymond.c.robles at intel.com (Robles, Raymond C) Date: Thu, 25 May 2017 17:35:44 +0000 Subject: [nvmewin] Compatibility issue with 1.5 version nvme driver In-Reply-To: <7125daf8d16c4290bbf16208e2dbe16e@ExMBX2.phison.com> References: <72e3a49d013142819ddb77a9a2c941f3@ExMBX2.phison.com> <61e5436482f94a7f9a13ddb98942cf1b@ExMBX2.phison.com> <7125daf8d16c4290bbf16208e2dbe16e@ExMBX2.phison.com> Message-ID: <49158E750348AA499168FD41D88983607C75ACC4@fmsmsx117.amr.corp.intel.com> Hi Justina, The issue you mention below is a known issue. I thought there was a patch pushed to fix this, but if not, then my recommendation is to provide a patch that resolves this issue. The main issue is for commands that require 2 child commands, the lock is acquired a second time for the second time on the completions side of the first child command. It should be a very simple fix. Normally, I request that community members who find the issue submit patches to resolve this issue. This is our model. Could you please provide the patch for the fix? NOTE: Uma Parepalli is the new OFA chair and will handle this issue moving forward. Thanks... Ray From: nvmewin [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Justina Lai Sent: Thursday, May 25, 2017 1:03 AM To: nvmewin at lists.openfabrics.org Cc: Larry Li Subject: Re: [nvmewin] Compatibility issue with 1.5 version nvme driver Dear Sir/Madam, We are facing compatibility issue on our PS5007 NVMe device with recent 1.5 version nvme driver. Please check below issue description. Phison PS5007 supports 7 IO queues, and if we use PS5007 with OFA driver on the platform core number>7, ex: 8-core or 12-core PC, we will see PC hang up and cannot enter OS like below: [cid:image001.jpg at 01D2D542.2AE08240] After debugging on our side, we found the fail is caused by below flow: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- .......... 1. SntiTranslateModeSense() .......... 2.IoCompletionRoutine() if (pDpc != NULL) { ASSERT(pAE->ntldrDump == FALSE); if (pAE->MultipleCoresToSingleQueueFlag) { StorPortAcquireSpinLock(pAE, StartIoLock, NULL, &StartLockHandle); ----------------------> execute lock } else { StorPortAcquireSpinLock(pAE, DpcLock, pDpc, &DpcLockhandle); } } ......... callStorportNotification = pSrbExtension->pNvmeCompletionRoutine(pAE, (PVOID)pSrbExtension) && (pSrbExtension->pSrb != NULL); ....... 3.SntiTranslateModeSenseResponse() ....... case MODE_SENSE_RETURN_ALL: ....... if (supportsVwc == TRUE) { pSrbExt->pNvmeCompletionRoutine = SntiCompletionCallbackRoutine; /* Finally, make sure we issue the GET FEATURES command */ SntiBuildGetFeaturesCmd(pSrbExt, VOLATILE_WRITE_CACHE); ioStarted = ProcessIo(pSrbExt->pNvmeDevExt, pSrbExt, NVME_QUEUE_TYPE_ADMIN, TRUE); 4.ProcessIo() ........ if (AcquireLock == TRUE) { StorPortAcquireSpinLock(pAdapterExtension, StartIoLock, NULL, &hStartIoLock); ------------------------> double execute lock and cause (Assertion failure - code c0000420) } --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Since many users are now using our PS5007 device with 8-core or 12-core PC, they are facing this issue right now. Could you please help to modify driver to solve this problem asap? Any unclear point, please kindly let us know. Thank you very much for the help! Best Regards, Justina Lai #5707 This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.jpg Type: image/jpeg Size: 11633 bytes Desc: image001.jpg URL: From justina_lai at phison.com Thu May 25 19:08:26 2017 From: justina_lai at phison.com (Justina Lai) Date: Fri, 26 May 2017 02:08:26 +0000 Subject: [nvmewin] Compatibility issue with 1.5 version nvme driver In-Reply-To: <49158E750348AA499168FD41D88983607C75ACC4@fmsmsx117.amr.corp.intel.com> References: <72e3a49d013142819ddb77a9a2c941f3@ExMBX2.phison.com> <61e5436482f94a7f9a13ddb98942cf1b@ExMBX2.phison.com> <7125daf8d16c4290bbf16208e2dbe16e@ExMBX2.phison.com> <49158E750348AA499168FD41D88983607C75ACC4@fmsmsx117.amr.corp.intel.com> Message-ID: Hi Raymond, Thanks for reply. Please find attachment. It's modified based on 4/8 157 version. Thanks! Best Regards, Justina Lai #5707 From: Robles, Raymond C [mailto:raymond.c.robles at intel.com] Sent: Friday, May 26, 2017 1:36 AM To: Justina Lai ; nvmewin at lists.openfabrics.org Cc: Larry Li ; 'umaparepalli at gmail.com' Subject: RE: Compatibility issue with 1.5 version nvme driver Hi Justina, The issue you mention below is a known issue. I thought there was a patch pushed to fix this, but if not, then my recommendation is to provide a patch that resolves this issue. The main issue is for commands that require 2 child commands, the lock is acquired a second time for the second time on the completions side of the first child command. It should be a very simple fix. Normally, I request that community members who find the issue submit patches to resolve this issue. This is our model. Could you please provide the patch for the fix? NOTE: Uma Parepalli is the new OFA chair and will handle this issue moving forward. Thanks... Ray From: nvmewin [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Justina Lai Sent: Thursday, May 25, 2017 1:03 AM To: nvmewin at lists.openfabrics.org Cc: Larry Li > Subject: Re: [nvmewin] Compatibility issue with 1.5 version nvme driver Dear Sir/Madam, We are facing compatibility issue on our PS5007 NVMe device with recent 1.5 version nvme driver. Please check below issue description. Phison PS5007 supports 7 IO queues, and if we use PS5007 with OFA driver on the platform core number>7, ex: 8-core or 12-core PC, we will see PC hang up and cannot enter OS like below: [cid:image001.jpg at 01D2D607.0C974100] After debugging on our side, we found the fail is caused by below flow: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- .......... 1. SntiTranslateModeSense() .......... 2.IoCompletionRoutine() if (pDpc != NULL) { ASSERT(pAE->ntldrDump == FALSE); if (pAE->MultipleCoresToSingleQueueFlag) { StorPortAcquireSpinLock(pAE, StartIoLock, NULL, &StartLockHandle); ----------------------> execute lock } else { StorPortAcquireSpinLock(pAE, DpcLock, pDpc, &DpcLockhandle); } } ......... callStorportNotification = pSrbExtension->pNvmeCompletionRoutine(pAE, (PVOID)pSrbExtension) && (pSrbExtension->pSrb != NULL); ....... 3.SntiTranslateModeSenseResponse() ....... case MODE_SENSE_RETURN_ALL: ....... if (supportsVwc == TRUE) { pSrbExt->pNvmeCompletionRoutine = SntiCompletionCallbackRoutine; /* Finally, make sure we issue the GET FEATURES command */ SntiBuildGetFeaturesCmd(pSrbExt, VOLATILE_WRITE_CACHE); ioStarted = ProcessIo(pSrbExt->pNvmeDevExt, pSrbExt, NVME_QUEUE_TYPE_ADMIN, TRUE); 4.ProcessIo() ........ if (AcquireLock == TRUE) { StorPortAcquireSpinLock(pAdapterExtension, StartIoLock, NULL, &hStartIoLock); ------------------------> double execute lock and cause (Assertion failure - code c0000420) } --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Since many users are now using our PS5007 device with 8-core or 12-core PC, they are facing this issue right now. Could you please help to modify driver to solve this problem asap? Any unclear point, please kindly let us know. Thank you very much for the help! Best Regards, Justina Lai #5707 This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated. This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.jpg Type: image/jpeg Size: 11633 bytes Desc: image001.jpg URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: nvmeIo.c URL: From justina_lai at phison.com Sun May 21 22:06:29 2017 From: justina_lai at phison.com (Justina Lai) Date: Mon, 22 May 2017 05:06:29 -0000 Subject: [nvmewin] Compatibility issue with 1.5 version nvme driver Message-ID: <72e3a49d013142819ddb77a9a2c941f3@ExMBX2.phison.com> Dear Sir/Madam, We are facing compatibility issue on our PS5007 NVMe device with recent 1.5 version nvme driver. Please check below issue description. Phison PS5007 supports 7 IO queues, and if we use PS5007 with OFA driver on the platform core number>7, ex: 8-core or 12-core PC, we will see PC hang up and cannot enter OS like below: [cid:image001.jpg at 01D2D2FA.6FA70740] After debugging on our side, we found the fail is caused by below flow: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- .......... 1. SntiTranslateModeSense() .......... 2.IoCompletionRoutine() if (pDpc != NULL) { ASSERT(pAE->ntldrDump == FALSE); if (pAE->MultipleCoresToSingleQueueFlag) { StorPortAcquireSpinLock(pAE, StartIoLock, NULL, &StartLockHandle); ----------------------> execute lock } else { StorPortAcquireSpinLock(pAE, DpcLock, pDpc, &DpcLockhandle); } } ......... callStorportNotification = pSrbExtension->pNvmeCompletionRoutine(pAE, (PVOID)pSrbExtension) && (pSrbExtension->pSrb != NULL); ....... 3.SntiTranslateModeSenseResponse() ....... case MODE_SENSE_RETURN_ALL: ....... if (supportsVwc == TRUE) { pSrbExt->pNvmeCompletionRoutine = SntiCompletionCallbackRoutine; /* Finally, make sure we issue the GET FEATURES command */ SntiBuildGetFeaturesCmd(pSrbExt, VOLATILE_WRITE_CACHE); ioStarted = ProcessIo(pSrbExt->pNvmeDevExt, pSrbExt, NVME_QUEUE_TYPE_ADMIN, TRUE); 4.ProcessIo() ........ if (AcquireLock == TRUE) { StorPortAcquireSpinLock(pAdapterExtension, StartIoLock, NULL, &hStartIoLock); ------------------------> double execute lock and cause (Assertion failure - code c0000420) } --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Since many users are now using our PS5007 device with 8-core or 12-core PC, they are facing this issue right now. Could you please help to modify driver to solve this problem asap? Any unclear point, please kindly let us know. Thank you very much for the help! Best Regards, Justina Lai #5707 This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.jpg Type: image/jpeg Size: 11633 bytes Desc: image001.jpg URL: From justina_lai at phison.com Wed May 24 22:03:30 2017 From: justina_lai at phison.com (Justina Lai) Date: Thu, 25 May 2017 05:03:30 -0000 Subject: [nvmewin] Compatibility issue with 1.5 version nvme driver In-Reply-To: <72e3a49d013142819ddb77a9a2c941f3@ExMBX2.phison.com> References: <72e3a49d013142819ddb77a9a2c941f3@ExMBX2.phison.com> Message-ID: <61e5436482f94a7f9a13ddb98942cf1b@ExMBX2.phison.com> Hi, Have you received my mail on 5/22? Thanks! Best Regards, Justina Lai #5707 From: Justina Lai Sent: Monday, May 22, 2017 1:14 PM To: 'nvmewin at lists.openfabrics.org' Cc: Larry Li Subject: Compatibility issue with 1.5 version nvme driver Dear Sir/Madam, We are facing compatibility issue on our PS5007 NVMe device with recent 1.5 version nvme driver. Please check below issue description. Phison PS5007 supports 7 IO queues, and if we use PS5007 with OFA driver on the platform core number>7, ex: 8-core or 12-core PC, we will see PC hang up and cannot enter OS like below: [cid:image001.jpg at 01D2D558.5BC54920] After debugging on our side, we found the fail is caused by below flow: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- .......... 1. SntiTranslateModeSense() .......... 2.IoCompletionRoutine() if (pDpc != NULL) { ASSERT(pAE->ntldrDump == FALSE); if (pAE->MultipleCoresToSingleQueueFlag) { StorPortAcquireSpinLock(pAE, StartIoLock, NULL, &StartLockHandle); ----------------------> execute lock } else { StorPortAcquireSpinLock(pAE, DpcLock, pDpc, &DpcLockhandle); } } ......... callStorportNotification = pSrbExtension->pNvmeCompletionRoutine(pAE, (PVOID)pSrbExtension) && (pSrbExtension->pSrb != NULL); ....... 3.SntiTranslateModeSenseResponse() ....... case MODE_SENSE_RETURN_ALL: ....... if (supportsVwc == TRUE) { pSrbExt->pNvmeCompletionRoutine = SntiCompletionCallbackRoutine; /* Finally, make sure we issue the GET FEATURES command */ SntiBuildGetFeaturesCmd(pSrbExt, VOLATILE_WRITE_CACHE); ioStarted = ProcessIo(pSrbExt->pNvmeDevExt, pSrbExt, NVME_QUEUE_TYPE_ADMIN, TRUE); 4.ProcessIo() ........ if (AcquireLock == TRUE) { StorPortAcquireSpinLock(pAdapterExtension, StartIoLock, NULL, &hStartIoLock); ------------------------> double execute lock and cause (Assertion failure - code c0000420) } --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Since many users are now using our PS5007 device with 8-core or 12-core PC, they are facing this issue right now. Could you please help to modify driver to solve this problem asap? Any unclear point, please kindly let us know. Thank you very much for the help! Best Regards, Justina Lai #5707 This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.jpg Type: image/jpeg Size: 11633 bytes Desc: image001.jpg URL: