[nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Thomas Freeman thomas.freeman at hgst.com
Mon Nov 30 15:15:08 PST 2015


Hi Uma,
This patch includes changes to support SNTL version 1.5, SCSI Persistent Reserve In/Out and a variety of small fixes.

More details:
1. Numerous parts were changed to convert TABS to spaces

2. Make the driver compliant with SNTL 1.5
   a. fail commands with Illegal Request when NACA bit in control field is set (SNTL 1.5, Section 3.3)
      nvmeSntiTypes.h, nvmeSnti.c:SntiTranslateCommand, SntiValidateNacaSetting

   b. Report LUNS support added for all values of Select Report field (SNTL 1.5, Section 4.5)
      nvmeSnti.c:SntiTranslateReportLuns

   c. Change serial number format in Unit Serial Number VPD page (SNTL 1.5, Section 6.1.3)
      The generated Product Serial Number is based on whether the device is V1.0 compliant, has an NGUID or EUI64 value.
      nvme.h, nvmeSntiTypes.h, nvmeSnti.h, nvmeSnti.c:SntiTranslateUnitSerialPage, SntiConvertULLongToA

   d. Update data returned in Device ID Data Page (SNTL 1.5, Section 6.1.4)
      Based on whether the device is V1.0 compliant, has an NGUID or EUI64 value, the driver will attempt
      to build a NAA IEEE Registered Extended designator, T10 Vendor ID Based descriptor,
      SCSI Name String Descriptor and EUI-64 based designator.
      nvme.h, nvmeSntiTypes.h, nvmeSnti.h, nvmeSnti.c:SntiTranslateDeviceIdentificationPage, SntiBuildIeeeRegExtDesc,
      SntiBuildT10VidBasedDesc, SntiBuildScsiNameStringDesc, SntiBuildEui64BasedDesc, SntiConvertULLongToA

   e. Set ATO bit in Control Mode Page to 1 (SNTL 1.5, Section 6.3.3.3)
      nvmeSnti.c:SntiCreateControlModePage, SntiReturnAllModePages

   f. Write_Protected command specific status (SNTL 1.5, Section 7.2)
      nvmeSnti.c

   g. Access denied Media Error (SNTL 1.5, Section 7.3)
      nvmeSnti.c

3. Add support for SCSI PERSISTENT RESERVE IN/OUT (SNTL 1.5, Sections 4.13 & 6.7)
   In support of this command, the driver must build and submit NVMe commands. The driver uses buffer space
   allocated by nvme_srb_extension.dsmBuffer for data areas required by these NVMe commands.
   nvme.h, nvmeStd.h, nvmeSnti.h, nvmeSntiTypes.h, nvmeSnti.c:SntiTranslateCommand, SntiTranslatePersistentReserveIn,
   SntiTranslatePersistentReserveOut, SntiBuildPersReserveRegisterCmd, SntiTranslatePersReserveInResponse,
   SntiTranslatePersReserveOutResponse

4. Add support for Identify Namespace List
   nvme.h, nvmeStd.c:NVMeIoctlIdentify

5. Change inquiry data to contain the last 4 characters of the firmware revision number (SNTL 1.5, Section 3.11)
   nvmeSnti.c:SntiTranslateStandardInquiryPage

6. Update read capacity 16 data to specify LogicalBlockProvisioningReadZeros = SPECIFIED (1)
   From SBC-4, Revision 8, section 5.18.2 "The logical block provisioning read zeros (LBPRZ) bit
   shall be set to one if the LBPRZ field in the Logical Block Provisioning VPD page (see 6.6.6)
   is set to xx1b. The LBPRZ bit shall be set to zero if the LBPRZ field in the Logical Block
   Provisioning VPD page is not set to xx1b."
   nvmeSnti.c:SntiTranslateReadCapacity16


7. Ensure returnStatus is initialized. There were code paths were it was returned without being set.
   nvmeSnti.c:SntiTranslateModeData

8. Correct the bit alignment for extended_inquiry_data and read_capacity_16_data
   nvmeSnti.h


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>
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/>

From: Uma Parepalli [mailto:Uma.Parepalli at skhms.com]
Sent: Monday, November 30, 2015 5:03 PM
To: Robles, Raymond C <raymond.c.robles at intel.com>; Thomas Freeman <thomas.freeman at hgst.com>; 'nvmewin at lists.openfabrics.org' <nvmewin at lists.openfabrics.org>
Subject: RE: [nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Hi Ray and all,
               Is it possible to get a quick summary of the patch?
               Thank you,
Uma

From: 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: Wednesday, November 25, 2015 2:52 PM
To: 'Thomas Freeman'; 'nvmewin at lists.openfabrics.org'
Subject: Re: [nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Hi Tom,

Sorry for the delay in retesting your updated patch. We have finished our review/tests and Intel approves this patch.

Now just need to wait approval from Samsung and PMC. Due to the holidays, we have a couple of options for this patch:


-          Wait for Samsung and PMC to come back with feedback/approval before pushing patch.

-          Push patch now (without approval from PMC and Samsung). Fix any remaining issues in future patches.

The second option allows us to move forward with the next patch from Intel for namespace management. The first option is still ideal as we would like to get as much feedback as possible.

Does anyone on this distribution have strong feelings for either option? Or an option I didn't describe?

Thanks,
Ray

From: Robles, Raymond C
Sent: Thursday, November 12, 2015 3:24 PM
To: Thomas Freeman; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
Subject: RE: [nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Thanks Tom! We'll rerun our tests.

Thanks,
Ray

From: Thomas Freeman [mailto:thomas.freeman at hgst.com]
Sent: Thursday, November 12, 2015 3:23 PM
To: Robles, Raymond C; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
Subject: RE: [nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Hi Ray,
There were issues with the IEKEY, RACQA, RRELA, RREGA and RTYPE.
I'm attaching a new file with those fixes - SNTL15ResInOut111215.zip (password "nvmehgst").

The code passes Scsi compliance testing (reservation is not enabled)
As before, I am doing a manual validation of PERSISTENT RESERVATION IN/OUT.

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>
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/>

From: Thomas Freeman
Sent: Tuesday, November 10, 2015 4:52 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>
Subject: RE: [nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Hi Ray,
I don't have hardware to support NVM Reservation Register. So, my testing was limited to issuing individual Scsi Persistent Reserve commands and manually verifying the Scsi to NVMe translation.
As you observed, I missed the IEKEY field. My implementation was based on table 6-35 in the SNTL 1.5. That doesn't mention IEKEY. But, I overlooked the information about IEKEY from table 4-16.
I'll make that change and submit a new patch.

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>
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/>

From: Robles, Raymond C [mailto:raymond.c.robles at intel.com]
Sent: Tuesday, November 10, 2015 3:59 PM
To: Thomas Freeman <thomas.freeman at hgst.com<mailto:thomas.freeman at hgst.com>>; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
Subject: RE: [nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Hi Tom,

Intel has finished their internal testing of this patch. All tests passed with the exception of the MS SCSI Compliance Tests for Persistent Reserve In/Out (see attached file).

We're not sure if the failures are due to IEKEY field not being handled in Persistent Reserve Out command. Was this something that was intentionally left out? Were you able to try the SCSI compliance test?

Thanks,
Ray

From: 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, November 02, 2015 4:25 PM
To: Thomas Freeman; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
Subject: Re: [nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Hello all,

I extended the review period for this patch to allow for more time. We're coming up on the end of the year and I'd like to wrap up all planned patches.

Intel is wrapping up our review of this patch and will send out our feedback by the end of the week. Still awaiting feedback from Samsung and PMC. In order to keep to our original schedule, I'd like to wrap this patch up as soon as possible. Intel will be next with the namespace management patch.

Thanks,
Ray

From: 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: Wednesday, October 07, 2015 12:54 PM
To: Thomas Freeman; nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
Subject: Re: [nvmewin] Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

Tom,

Thanks for volunteering to submit this patch while Intel is wrapping up the namespace management patch.

All Reviewers,

Please provide feedback on HGST's patch by October 21st, 2015. Thanks!

Thanks,
Ray

From: Thomas Freeman [mailto:thomas.freeman at hgst.com]
Sent: Wednesday, October 07, 2015 12:45 PM
To: nvmewin at lists.openfabrics.org<mailto:nvmewin at lists.openfabrics.org>
Cc: Robles, Raymond C
Subject: Changes for SNTL 1.5 and SCSI Persistent Reserve In/Out

This patch includes changes to support SNTL version 1.5, SCSI Persistent Reserve In/Out and a variety of small fixes.

The following tests were successfully run on Windows 2008 R2, Windows 2012 and Windows 2012 R2
1 hour sdstress, 1 hour IOMETER, Quick and Slow format - MBR and GPT, Microsoft Scsi Compliance.

The above tests were run with an NVMe 1.1a compliant device that does not support NVMe Reservations.
Testing variations of Unit SN VPD page/Device ID Data Page (requiring V1.0 or NGUID support) and
SCSI Persistent Reserve In/Out, required setting breakpoints to manually alter the required Identify
data. At that point individual SCSI commands were issued and the driver's response (NVMe commands
issued and data returned) was manually verified.

The attached file, SNTL15ResInOut.zip, contains a Patch file, a copy of the source code and a Log file detailing the changes made.
The password for the file is "nvmehgst"

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>
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/>

The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email.
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/20151130/cd8c624c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.gif
Type: image/gif
Size: 1117 bytes
Desc: image003.gif
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20151130/cd8c624c/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image004.png
Type: image/png
Size: 4274 bytes
Desc: image004.png
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20151130/cd8c624c/attachment.png>


More information about the nvmewin mailing list