[nvmewin] Compatibility issue with 1.5 version nvme driver

Tom Freeman thomas.freeman at wdc.com
Mon Jun 19 08:17:21 PDT 2017


Ray,
Western Digital approves the fix.

FYI, it appears this also addresses a similar situation during format.
I see the same issue in the following code path:
IoCompletionRoutine - > NVMeIoctlFormatNVMCallback -> FormatNVMGetIdentify->ProcessIo


Tom Freeman
Software Engineer, Device Manager and Driver Development

Western Digital(r)
Email:  Thomas.Freeman at wdc.com
Office:  +1-507-322-2311


From: nvmewin [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Robles, Raymond C
Sent: Tuesday, June 13, 2017 3:31 PM
To: Justina Lai <justina_lai at phison.com>; nvmewin at lists.openfabrics.org
Cc: 'umaparepalli at gmail.com' <umaparepalli at gmail.com>; Larry Li <larry_li at phison.com>
Subject: Re: [nvmewin] Compatibility issue with 1.5 version nvme driver

Hi Justina,

I'm still waiting for feedback from Samsung and HGST on your patch.

Tom/Judy/Suman,

Can you please provide feedback on Phison's patch for the BSOD fix for grabbing the same lock twice?

Thanks...
Ray

From: Justina Lai [mailto:justina_lai at phison.com]
Sent: Thursday, May 25, 2017 7:08 PM
To: Robles, Raymond C <raymond.c.robles at intel.com<mailto:raymond.c.robles at intel.com>>; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
Cc: Larry Li <larry_li at phison.com<mailto:larry_li at phison.com>>; 'umaparepalli at gmail.com' <umaparepalli at gmail.com<mailto:umaparepalli at gmail.com>>
Subject: RE: Compatibility issue with 1.5 version nvme driver

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 <justina_lai at phison.com<mailto:justina_lai at phison.com>>; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
Cc: Larry Li <larry_li at phison.com<mailto:larry_li at phison.com>>; 'umaparepalli at gmail.com' <umaparepalli at gmail.com<mailto: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<mailto:nvmewin at lists.openfabrics.org>
Cc: Larry Li <larry_li at phison.com<mailto:larry_li at phison.com>>
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 01D2E8E4.58AB6220]

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: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20170619/b609f73b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 11633 bytes
Desc: image001.jpg
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20170619/b609f73b/attachment.jpg>


More information about the nvmewin mailing list