<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pm24.git/include/uapi/linux/nvme.h, branch v4.0-rc2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kobert.dev/pm24.git/atom?h=v4.0-rc2</id>
<link rel='self' href='https://git.kobert.dev/pm24.git/atom?h=v4.0-rc2'/>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/'/>
<updated>2015-02-19T23:15:35Z</updated>
<entry>
<title>NVMe: Update SCSI Inquiry VPD 83h translation</title>
<updated>2015-02-19T23:15:35Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2015-02-19T20:42:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=4f1982b4e262c45475a91b4253e9bc7f7c991c13'/>
<id>urn:sha1:4f1982b4e262c45475a91b4253e9bc7f7c991c13</id>
<content type='text'>
The original translation created collisions on Inquiry VPD 83 for many
existing devices. Newer specifications provide other ways to translate
based on the device's version can be used to create unique identifiers.

Version 1.1 provides an EUI64 field that uniquely identifies each
namespace, and 1.2 added the longer NGUID field for the same reason.
Both follow the IEEE EUI format and readily translate to the SCSI device
identification EUI designator type 2h. For devices implementing either,
the translation will use this type, defaulting to the EUI64 8-byte type if
implemented then NGUID's 16 byte version if not. If neither are provided,
the 1.0 translation is used, and is updated to use the SCSI String format
to guarantee a unique identifier.

Knowing when to use the new fields depends on the nvme controller's
revision. The NVME_VS macro was not decoding this correctly, so that is
fixed in this patch and moved to a more appropriate place.

Since the Identify Namespace structure required an update for the NGUID
field, this patch adds the remaining new 1.2 fields to the structure.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Metadata format support</title>
<updated>2015-02-19T23:15:35Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2015-02-19T20:39:03Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=e1e5e5641e6f271321aec257ed26a72715e4a8c2'/>
<id>urn:sha1:e1e5e5641e6f271321aec257ed26a72715e4a8c2</id>
<content type='text'>
Adds support for NVMe metadata formats and exposes block devices for
all namespaces regardless of their format. Namespace formats that are
unusable will have disk capacity set to 0, but a handle to the block
device is created to simplify device management. A namespace is not
usable when the format requires host interleave block and metadata in
single buffer, has no provisioned storage, or has better data but failed
to register with blk integrity.

The namespace has to be scanned in two phases to support separate
metadata formats. The first establishes the sector size and capacity
prior to invoking add_disk. If metadata is required, the capacity will
be temporarilly set to 0 until it can be revalidated and registered with
the integrity extenstions after add_disk completes.

The driver relies on the integrity extensions to provide the metadata
buffer. NVMe requires this be a single physically contiguous region,
so only one integrity segment is allowed per command. If the metadata
is used for T10 PI, the driver provides mappings to save and restore
the reftag physical block translation. The driver provides no-op
functions for generate and verify if metadata is not used for protection
information. This way the setup is always provided by the block layer.

If a request does not supply a required metadata buffer, the command
is failed with bad address. This could only happen if a user manually
disables verify/generate on such a disk. The only exception to where
this is okay is if the controller is capable of stripping/generating
the metadata, which is possible on some types of formats.

The metadata scatter gather list now occupies the spot in the nvme_iod
that used to be used to link retryable IOD's, but we don't do that
anymore, so the field was unused.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Updates for 1.1 spec</title>
<updated>2014-11-04T20:17:10Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2014-09-15T20:08:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=60e0545cc92ce4172c7069d559568717f64af332'/>
<id>urn:sha1:60e0545cc92ce4172c7069d559568717f64af332</id>
<content type='text'>
Updating commands and structures for NVMe 1.1 updates, mostly for nvme
reservations. There are no additional in-kernel uses, but this is for
the uapi.

While doing this, I noticed that the software progress features was
using the wrong value, so updating that value as well.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Passthrough IOCTL for IO commands</title>
<updated>2014-11-04T20:17:09Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2014-09-12T22:07:20Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=7963e521811ed19396d47793cc77d87c643ab891'/>
<id>urn:sha1:7963e521811ed19396d47793cc77d87c643ab891</id>
<content type='text'>
The NVME_IOCTL_SUBMIT_IO only works for IO commands with block data
transfers and isn't usable for other NVMe commands like flush,
data set management, or any sort of vendor unique command. The
NVME_IOCTL_ADMIN_CMD, however, can easily be modified to accept arbitrary
IO commands in addition to arbitrary admin commands without breaking
backward compatibility. This patch just adds a new IOCTL to distinguish
if the driver should submit the command on an IO or Admin queue.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Update list of status codes</title>
<updated>2014-11-04T20:17:07Z</updated>
<author>
<name>Matthew Wilcox</name>
<email>matthew.r.wilcox@intel.com</email>
</author>
<published>2014-06-28T13:00:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=a7dd7957acf798ac406afd6631e64a27ac4a5bf1'/>
<id>urn:sha1:a7dd7957acf798ac406afd6631e64a27ac4a5bf1</id>
<content type='text'>
Taken from the draft NVMe 1.1b specification.

Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Define Log Page constants</title>
<updated>2014-06-13T14:53:49Z</updated>
<author>
<name>Matthew Wilcox</name>
<email>matthew.r.wilcox@intel.com</email>
</author>
<published>2014-06-13T14:53:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=3d69bb6e4699251102dc145b7800dd012ddec375'/>
<id>urn:sha1:3d69bb6e4699251102dc145b7800dd012ddec375</id>
<content type='text'>
Taken from the 1.1a version of the spec

Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Update data structures for NVMe 1.2</title>
<updated>2014-06-03T15:29:31Z</updated>
<author>
<name>Matthew Wilcox</name>
<email>matthew.r.wilcox@intel.com</email>
</author>
<published>2014-05-10T02:45:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=23372af15e638bf3ce0764554db3b5e58bf7ceb8'/>
<id>urn:sha1:23372af15e638bf3ce0764554db3b5e58bf7ceb8</id>
<content type='text'>
Include changes from the current set of ratified Technical Proposals
for NVMe 1.2.

Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Update namespace and controller identify structures to the 1.1a spec</title>
<updated>2014-05-09T22:50:53Z</updated>
<author>
<name>Dimitri John Ledkov</name>
<email>dimitri.ledkov@canonical.com</email>
</author>
<published>2014-05-07T19:55:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=f2727f7eb9132803d06309839a95de3dad82d237'/>
<id>urn:sha1:f2727f7eb9132803d06309839a95de3dad82d237</id>
<content type='text'>
Controller: add CNTLID, AVSCC, APSTA, NVSCC, ACWU, SGLS fields.

Namespace: add NMIC, RESCAP, EUI64 fields. EUI64 is specifically
interesting, since it can be used to construct an UEFI NVMe device
path for a boot entry.

As per NVM Express 1.1a spec:
http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1_1a.pdf

Signed-off-by: Dimitri John Ledkov &lt;dimitri.ledkov@canonical.com&gt;
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Configure support for block flush</title>
<updated>2014-05-05T14:53:53Z</updated>
<author>
<name>Keith Busch</name>
<email>keith.busch@intel.com</email>
</author>
<published>2014-04-29T17:41:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=a7d2ce2832d84e0182585f63bf96ca7323b3aee7'/>
<id>urn:sha1:a7d2ce2832d84e0182585f63bf96ca7323b3aee7</id>
<content type='text'>
This configures an nvme request_queue as flush capable if the device
has a volatile write cache present.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
<entry>
<title>NVMe: Update copyright headers</title>
<updated>2014-05-05T14:41:25Z</updated>
<author>
<name>Matthew Wilcox</name>
<email>matthew.r.wilcox@intel.com</email>
</author>
<published>2014-04-11T14:37:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=8757ad65d30f009fe0beeb2d70d3cd834cb998f2'/>
<id>urn:sha1:8757ad65d30f009fe0beeb2d70d3cd834cb998f2</id>
<content type='text'>
Make the copyright dates accurate and remove the final paragraph that
includes the address of the FSF.

Signed-off-by: Matthew Wilcox &lt;matthew.r.wilcox@intel.com&gt;
</content>
</entry>
</feed>
