[nvmewin] FW: NVME fuzz test fixes

Robles, Raymond C raymond.c.robles at intel.com
Fri Dec 4 12:41:01 PST 2015


Hi Iuliu,

Yes we are still accepting patches. Please feel free to submit a patch request. Right now we are finishing up HGST’s multi-path patch, and then Intel will be pushing a patch for namespace management. After these two patches, you may submit your patch.

Thanks,
Ray

From: Iuliu Rus [mailto:iuliur at google.com]
Sent: Friday, December 04, 2015 12:58 PM
To: Robles, Raymond C
Cc: nvmewin at lists.openfabrics.org
Subject: Re: FW: NVME fuzz test fixes

Hi Raymond,
We are continuously running the fuzz test in our lab and we have discovered a new issue. Some incorrect error handling results in nvme.sys setting the SRB_STATUS to:
SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_ERROR | SRB_STATUS_SUCCESS (due to repeated or-ing in different functions)
This actually means SRB_STATUS_BUSY (you are only allowed to or SRB_STATUS_AUTOSENSE_VALID). And it makes windows retry the command indefinitely (or at least a very long time).

Do you still accept patches? We would like to push this fix into thunk at your earliest convenience.

On Fri, Oct 2, 2015 at 11:47 AM, Robles, Raymond C <raymond.c.robles at intel.com<mailto:raymond.c.robles at intel.com>> wrote:
Thank you Iuliu. I have applied your patch and created a new tag (#34).

Thank you for using he SVN patch process. It worked very well. From this point forward, I will enforce using the SVN patch process.The trunk is now updated with Google’s latest patch. Please feel free to update as needed.

Intel was next in line with the namespace patch, however we are still in the process of unit testing. Is there any other company ready to submit a patch? Samsung (Suman)? HGST (Tom)?

Thanks,
Ray

From: Iuliu Rus [mailto:iuliur at google.com<mailto:iuliur at google.com>]
Sent: Thursday, October 01, 2015 11:13 AM
To: Robles, Raymond C
Cc: nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>

Subject: Re: FW: NVME fuzz test fixes

Attached a patch file.

On Tue, Sep 29, 2015 at 12:24 AM, Robles, Raymond C <raymond.c.robles at intel.com<mailto:raymond.c.robles at intel.com>> wrote:
Hi Iuliu,
As I was getting ready to merge your patch, I did a diff of your patch with the current OFA trunk and noticed that you don’t have the latest updates from the OFA trunk within your patch.
I did not want to do a manual merge of your patch on top of the current source in case there was any overlap. Could you please rebase your patch with the latest OFA trunk? Thanks!
This also brings up another point that you had previously raised to me… patch submission. I spoke with Ken Strandberg (OFA admin) and he reminded me that all SVN clients have a “create patch” and “apply patch” option. So, if you don’t mind, once you are done with rebasing your code with the latest trunk, could you please create a patch using the SVN tools? I use TortoiseSVN and it’s pretty straightforward. You just need to copy your files over your working copy of the trunk and select “create branch”. You should then just be able to send me the patch.
Thanks for being the guinea pig for this, but I think it makes sense to use a patch tool as you recommended. Let me know if you have any questions.
Thanks,
Ray
From: nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org> [mailto:nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org>] On Behalf Of Robles, Raymond C
Sent: Monday, September 28, 2015 4:16 PM
To: suman.p at samsung.com<mailto:suman.p at samsung.com>; nvmewin-request at lists.openfabrics.org<mailto:nvmewin-request at lists.openfabrics.org>; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>

Subject: Re: [nvmewin] FW: NVME fuzz test fixes

Thanks Suman! I’ll push the patch today and it should be ready by tomorrow.
Intel is up next with the Namespace Management patch. However, we are not fully done with unit testing. Suman, is Samsung ready to push any of its patches next?
Thanks,
Ray

From: SUMAN PRAKASH B [mailto:suman.p at samsung.com]
Sent: Wednesday, September 23, 2015 4:49 AM
To: nvmewin-request at lists.openfabrics.org<mailto:nvmewin-request at lists.openfabrics.org>; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>; Robles, Raymond C
Subject: Re: FW: NVME fuzz test fixes




SAMSUNG approves the patch.



Thanks,

Suman

------- Original Message -------
Sender : nvmewin-request at lists.openfabrics.org<nvmewin-request at lists.openfabrics.org<mailto:nvmewin-request at lists.openfabrics.org%3cnvmewin-request at lists.openfabrics.org>>
Date   : Sep 23, 2015 06:10 (GMT+05:30)
Title  : nvmewin Digest, Vol 45, Issue 21

Send nvmewin mailing list submissions to
 nvmewin at lists.openfabrics.org<mailto: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<mailto:nvmewin-request at lists.openfabrics.org>

You can reach the person managing the list at
 nvmewin-owner at lists.openfabrics.org<mailto: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: FW: NVME fuzz test fixes (Robles, Raymond C)


----------------------------------------------------------------------

Message: 1
Date: Wed, 23 Sep 2015 00:40:46 +0000
From: "Robles, Raymond C" <raymond.c.robles at intel.com<mailto:raymond.c.robles at intel.com>>
To: Alex Chang <Alex.Chang at pmcs.com<mailto:Alex.Chang at pmcs.com>>, Thomas Freeman
 <thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com>>, Iuliu Rus <iuliur at google.com<mailto:iuliur at google.com>>
Cc: "nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>" <nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>>
Subject: Re: [nvmewin] FW: NVME fuzz test fixes
Message-ID:
 <49158E750348AA499168FD41D88983606B769A4B at fmsmsx117.amr.corp.intel.com<mailto:49158E750348AA499168FD41D88983606B769A4B at fmsmsx117.amr.corp.intel.com>>

Content-Type: text/plain; charset="utf-8"

Thanks Alex!

From: nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org> [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Alex Chang
Sent: Tuesday, September 22, 2015 2:28 PM
To: Thomas Freeman; Iuliu Rus
Cc: nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>; uliur at google.com<mailto:uliur at google.com>
Subject: Re: [nvmewin] FW: NVME fuzz test fixes

PMC approves the patch.

Thank you!
Alex

From: nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org%3cmailto:nvmewin-bounces at lists.openfabrics.org>> [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Thomas Freeman
Sent: Tuesday, September 22, 2015 1:02 PM
To: Iuliu Rus
Cc: nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org%3cmailto:nvmewin at lists.openfabrics.org>>; uliur at google.com<mailto:uliur at google.com<mailto:uliur at google.com%3cmailto:uliur at google.com>>
Subject: Re: [nvmewin] FW: NVME fuzz test fixes


HGST approves these changes.

Tom Freeman
Software Engineer, Device Manager and Driver Development
HGST, a Western Digital company
thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com%3cmailto:thomas.freeman at hgst.com>>
507-322-2311<tel:507-322-2311>

[HGST_Logo_email]
3605 Hwy 52 N
Rochester, MN 55901
www.hgst.com<https://hgst.jiveon.com/external-link.jspa?url=http://www.hgst.com/<http://www.hgst.com%3chttps:/hgst.jiveon.com/external-link.jspa?url=http://www.hgst.com/>>

From: Iuliu Rus [mailto:iuliur at google.com]
Sent: Tuesday, September 15, 2015 12:08 PM
To: Thomas Freeman <thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com%3cmailto:thomas.freeman at hgst.com>>>
Cc: Robles, Raymond C <raymond.c.robles at intel.com<mailto:raymond.c.robles at intel.com<mailto:raymond.c.robles at intel.com%3cmailto:raymond.c.robles at intel.com>>>; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org%3cmailto:nvmewin at lists.openfabrics.org>>; uliur at google.com<mailto:uliur at google.com<mailto:uliur at google.com%3cmailto:uliur at google.com>>
Subject: Re: [nvmewin] FW: NVME fuzz test fixes

Thanks for the great feedback. Fixed all and attached the new zip (same password). I also reran the tests, but for 3) the Microsoft fuzz test seems to have no coverage. It keeps asking for sense data with aloc length of 0 (like 100 times). I artificially tested this by modifying the allocLength variable in kernel debugger.



On Mon, Sep 14, 2015 at 1:41 PM, Thomas Freeman <thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com%3cmailto:thomas.freeman at hgst.com>>> wrote:
Iuliu,
The changes look good.
I have just a few comments.

1.        nvmeSnti.C/Line 1157 ? memset(pResponseBuffer, 0, allocLength);  This was added to the comment, but it?s not clear why. I suspect it is an accidental addition. If so, this should be removed.

2.       nvmeSnti.c/Line 1519 ? Since the Lun value is actually written to the second byte of the entry, the comparison should be:

if (lunIdDataOffset + SINGLE_LVL_LUN_OFFSET >= allocLength)



As an example, test with a buffer size of 0x11. Without this change, the driver will actually write the byte after the allocated buffer.

3.       nvmeSnti.c/Line 2652 & 2669. Your change handles the case where there is no data buffer. But, it does not handle the case where the buffer is smaller than sizeof(DESCRIPTOR_FORMAT_SENSE_DATA). With a small buffer allocation, these writes would access beyond the allocated buffer

                                    pSenseData->ErrorCode                    = FIXED_SENSE_DATA;

            pSenseData->SenseKey                     = SCSI_SENSE_NO_SENSE;

            pSenseData->AdditionalSenseLength        = FIXED_SENSE_DATA_ADD_LENGTH;

            pSenseData->AdditionalSenseCode          = SCSI_ADSENSE_NO_SENSE;

            pSenseData->AdditionalSenseCodeQualifier = 0;


Regards,
Tom Freeman
Software Engineer, Device Manager and Driver Development
HGST, a Western Digital company
thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com%3cmailto:thomas.freeman at hgst.com>>
507-322-2311<tel:507-322-2311><tel:507-322-2311>

[HGST_Logo_email]
3605 Hwy 52 N
Rochester, MN 55901
www.hgst.com<https://hgst.jiveon.com/external-link.jspa?url=http://www.hgst.com/<http://www.hgst.com%3chttps:/hgst.jiveon.com/external-link.jspa?url=http://www.hgst.com/>>

From: nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org%3cmailto:nvmewin-bounces at lists.openfabrics.org>> [mailto:nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org><mailto:nvmewin-bounces at lists.openfabrics.org%3cmailto:nvmewin-bounces at lists.openfabrics.org%3e>] On Behalf Of Robles, Raymond C
Sent: Friday, September 11, 2015 3:29 PM
To: nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org%3cmailto:nvmewin at lists.openfabrics.org>>
Subject: [nvmewin] FW: NVME fuzz test fixes

All,

Here is the original patch from Google (Iuliu) for the WHCK fuzz tests.

Thanks,
Ray

From: nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org<mailto:nvmewin-bounces at lists.openfabrics.org%3cmailto:nvmewin-bounces at lists.openfabrics.org>> [mailto:nvmewin-bounces at lists.openfabrics.org] On Behalf Of Iuliu Rus
Sent: Monday, August 03, 2015 1:37 PM
To: nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org%3cmailto:nvmewin at lists.openfabrics.org>>
Subject: [nvmewin] NVME fuzz test fixes

Hello,
I have attached the fixes we (Google) did for the several crashes / corruptions exposed by the Windows HCK fuzztest.exe.
We have tested this on qemu/ Server 2012 R2.
The password on the zip is "nvme" :)
HGST E-mail Confidentiality Notice & Disclaimer:
This e-mail and any files transmitted with it may contain confidential or legally privileged information of HGST and are intended solely for the use of the individual or entity to which they are addressed. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited.  If you have received this e-mail in error, please notify the sender immediately and delete the e-mail in its entirety from your system.

_______________________________________________
nvmewin mailing list
nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org%3cmailto:nvmewin at lists.openfabrics.org>>
http://lists.openfabrics.org/mailman/listinfo/nvmewin

HGST E-mail Confidentiality Notice & Disclaimer:
This e-mail and any files transmitted with it may contain confidential or legally privileged information of HGST and are intended solely for the use of the individual or entity to which they are addressed. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited.  If you have received this e-mail in error, please notify the sender immediately and delete the e-mail in its entirety from your system.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20150923/fede796b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 4274 bytes
Desc: image001.png
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20150923/fede796b/attachment.png>

------------------------------

_______________________________________________
nvmewin mailing list
nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
http://lists.openfabrics.org/mailman/listinfo/nvmewin


End of nvmewin Digest, Vol 45, Issue 21
***************************************
<p> </p><p> </p>
[http://ext.samsung.net/mailcheck/SeenTimeChecker?do=36652d682e3669a8058afc1f1dafb9f39cd05f6ab872f9f6313cb48408a29da1bbef98290b9ea6844a835b19b8ec809fc7b41e955949e5c8a728c55b39cc59eacf878f9a26ce15a0]


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20151204/e6987c6b/attachment.html>


More information about the nvmewin mailing list