[nvmewin] Compatibility issue with 1.5 version nvme driver

Robles, Raymond C raymond.c.robles at intel.com
Wed Jun 14 14:40:26 PDT 2017


Hi Justina,

Thanks for providing the information below. As a friendly reminder, the OFA NVMe Win patch process is documented in our archives. Here is a copy of the process patch submission.

Please let me know when you have completed full unit testing as outlined. Intel is currently running the unit tests outlined below on your patch.

Note all tools needed are in the


Process:

  *   Submitter needs to base their changes on the latest (and re-base/re-test prior to sending their patch).
  *   They send the patch to the email list "nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>".
  *   Some review will happen over the reflector, the maintainer will send a message out that the db is locked when they're ready to apply the patch which will be once at least one member from each mandatory reviewing company on the review panel has approved (can be via email or con call if needed). Once the patch is applied, the maintainer will send an email out.

Patch Contents:

  *   Code changes, short summary for SVN log, more verbose write up for release notes, confirmation of what Windows platforms had been tested.
  *   Patch must follow the coding guidelines as attached.
  *   All source files should be zipped up into a .zip file with password enabled. The zip file name should properly describe the main changes of the patch.

Reviews:

  *   Patches submitted by anyone, email to distribution list "nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>".
  *   Patch submission should include time sensitivity/expectations.
  *   Patch submission should include justification for the patch (what value will it add, and are tradeoffs what are they and why would we want to take a hit).  If multiple implementation options were considered, what data/reasoning was behind the implementation choice.
  *   Patch submission should include files modified and explanation of code changes in each file.
  *   At a minimum reviews need to be completed by Intel, HGST, and Samsung representatives.
  *   Reviews include compliance with coding guidelines (in SVN) as well as logic.

Unit Testing (all patches and release candidates require, at a minimum, the following testing):

  *   1 hour of data integrity testing using sdstress (Microsoft Tool)
  *   1 hour of heavy stress testing using IOMETER covering, at least, 512B, 4KB and 128KB ranging from 1 OIO to 64 OIO both sequential and random
  *   Quick and slow format of both MBR and GPT partitioning
  *   Microsoft SCSI Compliance, no failures except (warnings OK)
  *   Additional testing with other tools is encouraged
  *   Occurs in all supported OSs for the release
     *   64-bit, Windows 7, 8.0, 8,1, server 2008R2 and 2012
     *   32-bit, Windows 7, 8.0
  *   Minimum test platform is latest QEMU.  Those with their HW should test on it as well.
  *   QEMU is available at https://github.com/nvmeqemu/nvmeqemu


Thanks...
Ray

From: Justina Lai [mailto:justina_lai at phison.com]
Sent: Wednesday, June 14, 2017 1:20 AM
To: Robles, Raymond C <raymond.c.robles at intel.com>; nvmewin at lists.openfabrics.org
Cc: Larry Li <larry_li at phison.com>; 'umaparepalli at gmail.com' <umaparepalli at gmail.com>
Subject: RE: Compatibility issue with 1.5 version nvme driver

Hi Raymond,

Yes, we have tested in our environment.

l   Device: Phison PS5007

l   Platform:
MB

CPU

CORE

GIGABYTE X99

I7 5820K 3.3GHz

12

Customer's notebook (not launch yet)

I7 7700HQ 2.8GHz

8


l   Test Method:

With driver 1.5 version: after install driver and cold boot, PC hang up and cannot enter OS like below.

Same situation for win7/win8.1/win10.

[cid:image001.jpg at 01D2E51B.F3232490]

With our modified version: after install driver and cold boot, PC can enter OS successfully.

Thanks!

Best Regards,
Justina Lai
#5707

From: Robles, Raymond C [mailto:raymond.c.robles at intel.com]
Sent: Wednesday, June 14, 2017 7:57 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,

I've reached out to the reviewing companies for feedback.

One question for you, have you unit tested your fix? If so, can you provide your configs, platforms, and method for unit testing.

Thanks...
Ray

From: Justina Lai [mailto:justina_lai at phison.com]
Sent: Tuesday, June 06, 2017 1:20 AM
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,

Will you help to release an official version to resolve this issue?
Thank you!

Best Regards,
Justina Lai
#5707

From: Justina Lai
Sent: Friday, May 26, 2017 10:02 AM
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 01D2E51B.F3232490]


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.


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/20170614/3144dbc7/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/20170614/3144dbc7/attachment.jpg>


More information about the nvmewin mailing list