1
0
Fork 0

Merging upstream version 1.15.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-16 12:11:43 +01:00
parent 14665a711e
commit d975eb29d0
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
116 changed files with 6031 additions and 2284 deletions

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-admin-passthru
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 06/04/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-ADMIN\-PASSTHR" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-ADMIN\-PASSTHR" "1" "06/04/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -46,6 +46,7 @@ nvme-admin-passthru \- Submit an arbitrary admin command, return results
[\-\-dry\-run | \-d]
[\-\-raw\-binary | \-b]
[\-\-prefill=<prefill> | \-p <prefill>]
[\-\-latency | \-T]
.fi
.SH "DESCRIPTION"
.sp
@ -123,6 +124,11 @@ Print the raw returned buffer to stdout if the command returns a structure\&.
.RS 4
Prefill the buffer with a predetermined byte value\&. Defaults to 0\&. This may be useful if the data you are writing is shorter than the required buffer, and you need to pad it with a known value\&. It may also be useful if you need to confirm if a device is overwriting a buffer for a data\-in command\&.
.RE
.PP
\-T, \-\-latency
.RS 4
Print out the latency the IOCTL took (in us)\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-admin-passthru(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
@ -94,7 +95,9 @@ ul > li > * { color: black; }
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
@ -223,7 +226,7 @@ div.exampleblock > div.content {
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
@ -759,7 +762,8 @@ nvme-admin-passthru(1) Manual Page
[--show-command | -s]
[--dry-run | -d]
[--raw-binary | -b]
[--prefill=&lt;prefill&gt; | -p &lt;prefill&gt;]</pre>
[--prefill=&lt;prefill&gt; | -p &lt;prefill&gt;]
[--latency | -T]</pre>
<div class="attribution">
</div></div>
</div>
@ -941,6 +945,17 @@ printed to stdout for another program to parse.</p></div>
is overwriting a buffer for a data-in command.
</p>
</dd>
<dt class="hdlist1">
-T
</dt>
<dt class="hdlist1">
--latency
</dt>
<dd>
<p>
Print out the latency the IOCTL took (in us).
</p>
</dd>
</dl></div>
</div>
</div>
@ -982,7 +997,8 @@ Or if you want to save that structure to a file:
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2019-09-06 10:35:44 MDT
Last updated
2021-06-04 10:59:04 IST
</div>
</div>
</body>

View file

@ -22,6 +22,7 @@ SYNOPSIS
[--dry-run | -d]
[--raw-binary | -b]
[--prefill=<prefill> | -p <prefill>]
[--latency | -T]
DESCRIPTION
-----------
@ -105,6 +106,10 @@ OPTIONS
value. It may also be useful if you need to confirm if a device
is overwriting a buffer for a data-in command.
-T::
--latency::
Print out the latency the IOCTL took (in us).
EXAMPLES
--------
* The following will run the admin command with opcode=6 and cdw10=1, which

View file

@ -0,0 +1,71 @@
'\" t
.\" Title: nvme-capacity-mgmt
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 07/02/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-CAPACITY\-MGMT" "1" "07/02/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-capacity-mgmt \- Send capacity management command to configure/create/delete Endurance Groups or NVM Sets, returns results\&.
.SH "SYNOPSIS"
.sp
.nf
\fInvme capacity\-mgmt\fR <device> [\-\-operation=<operation> | \-o <operation>]
[\-\-element\-id=<element\-id> | \-i <element\-id>]
[\-\-cap\-lower=<cap\-lower> | \-l <cap\-lower>]
[\-\-cap\-upper=<cap\-upper> | \-u <cap\-upper>]
.fi
.SH "DESCRIPTION"
.sp
For the NVMe device given, sends a capacity management command to configure/create/delete the Endurance Groups or NVM Sets with the requested operation and element_id\&. On success, if the Operation is Create Endurance group or NVM Set, CQE CDW0 contains Created element identifier else CQE CDW0 is reserved\&.
.sp
The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&.
.SH "OPTIONS"
.PP
\-o <operation>, \-\-operation=<operation>
.RS 4
Operation to be performed by the controller
.RE
.PP
\-i <element\-id>, \-\-element\-id=<element\-id>
.RS 4
Value specific to the value of the Operation field\&.
.RE
.PP
\-l <cap\-lower>, \-\-cap\-lower=<cap\-lower>
.RS 4
Least significant 32 bits of the capacity in bytes of the Endurance Group or NVM Set to be created
.RE
.PP
\-u <cap\-upper>, \-\-cap\-upper=<cap\-upper>
.RS 4
Most significant 32 bits of the capacity in bytes of the Endurance Group or NVM Set to be created
.RE
.SH "EXAMPLES"
.sp
No examples provided yet\&.
.SH "NVME"
.sp
Part of the nvme\-user suite

View file

@ -0,0 +1,845 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-capacity-mgmt(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
/* Default font. */
body {
font-family: Georgia,serif;
}
/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
font-family: Arial,Helvetica,sans-serif;
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
h5 {
font-size: 1.0em;
}
div.sectionbody {
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
ul > li { color: #aaa; }
ul > li > * { color: black; }
.monospaced, code, pre {
font-family: "Courier New", Courier, monospace;
font-size: inherit;
color: navy;
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
font-weight: bold;
font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}
#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
#footer-text {
float: left;
padding-bottom: 0.5em;
}
#footer-badges {
float: right;
padding-bottom: 0.5em;
}
#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid #dddddd;
border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid #dddddd;
border-left: 5px solid #f0f0f0;
background: #f8f8f8;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #f0f0f0;
color: #888;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > pre.content {
font-family: inherit;
font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
div.colist td {
padding-right: 0.5em;
padding-bottom: 0.3em;
vertical-align: top;
}
div.colist td img {
margin-top: 0.3em;
}
@media print {
#footer-badges { display: none; }
}
#toc {
margin-bottom: 2.5em;
}
#toctitle {
color: #527bbd;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }
span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }
span.big { font-size: 2em; }
span.small { font-size: 0.6em; }
span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }
div.unbreakable { page-break-inside: avoid; }
/*
* xhtml11 specific
*
* */
div.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-weight: bold;
color: #527bbd;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
/*
* html5 specific
*
* */
table.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
thead, p.tableblock.header {
font-weight: bold;
color: #527bbd;
}
p.tableblock {
margin-top: 0;
}
table.tableblock {
border-width: 3px;
border-spacing: 0px;
border-style: solid;
border-color: #527bbd;
border-collapse: collapse;
}
th.tableblock, td.tableblock {
border-width: 1px;
padding: 4px;
border-style: solid;
border-color: #527bbd;
}
table.tableblock.frame-topbot {
border-left-style: hidden;
border-right-style: hidden;
}
table.tableblock.frame-sides {
border-top-style: hidden;
border-bottom-style: hidden;
}
table.tableblock.frame-none {
border-style: hidden;
}
th.tableblock.halign-left, td.tableblock.halign-left {
text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
th.tableblock.valign-top, td.tableblock.valign-top {
vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
vertical-align: bottom;
}
/*
* manpage specific
*
* */
body.manpage h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
body.manpage h2 {
border-style: none;
}
body.manpage div.sectionbody {
margin-left: 3em;
}
@media print {
body.manpage div#toc { display: none; }
}
</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////
/* Author: Mihai Bazon, September 2002
* http://students.infoiasi.ro/~mishoo
*
* Table Of Content generator
* Version: 0.4
*
* Feel free to use this script under the terms of the GNU General Public
* License, as long as you do not remove or alter this notice.
*/
/* modified by Troy D. Hanson, September 2006. License: GPL */
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
// toclevels = 1..4.
toc: function (toclevels) {
function getText(el) {
var text = "";
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
text += i.data;
else if (i.firstChild != null)
text += getText(i);
}
return text;
}
function TocEntry(el, text, toclevel) {
this.element = el;
this.text = text;
this.toclevel = toclevel;
}
function tocEntries(el, toclevels) {
var result = new Array;
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
if (!toc) {
return;
}
// Delete existing TOC entries in case we're reloading the TOC.
var tocEntriesToRemove = [];
var i;
for (i = 0; i < toc.childNodes.length; i++) {
var entry = toc.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div'
&& entry.getAttribute("class")
&& entry.getAttribute("class").match(/^toclevel/))
tocEntriesToRemove.push(entry);
}
for (i = 0; i < tocEntriesToRemove.length; i++) {
toc.removeChild(tocEntriesToRemove[i]);
}
// Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
// Delete existing footnote entries in case we're reloading the footnodes.
var i;
var noteholder = document.getElementById("footnotes");
if (!noteholder) {
return;
}
var entriesToRemove = [];
for (i = 0; i < noteholder.childNodes.length; i++) {
var entry = noteholder.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
entriesToRemove.push(entry);
}
for (i = 0; i < entriesToRemove.length; i++) {
noteholder.removeChild(entriesToRemove[i]);
}
// Rebuild footnote entries.
var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
var note = spans[i].getAttribute("data-note");
if (!note) {
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
spans[i].setAttribute("data-note", note);
}
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
},
install: function(toclevels) {
var timerId;
function reinstall() {
asciidoc.footnotes();
if (toclevels) {
asciidoc.toc(toclevels);
}
}
function reinstallAndRemoveTimer() {
clearInterval(timerId);
reinstall();
}
timerId = setInterval(reinstall, 500);
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
else
window.onload = reinstallAndRemoveTimer;
}
}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
nvme-capacity-mgmt(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>nvme-capacity-mgmt -
Send capacity management command to configure/create/delete Endurance Groups or NVM Sets, returns results.
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme capacity-mgmt</em> &lt;device&gt; [--operation=&lt;operation&gt; | -o &lt;operation&gt;]
[--element-id=&lt;element-id&gt; | -i &lt;element-id&gt;]
[--cap-lower=&lt;cap-lower&gt; | -l &lt;cap-lower&gt;]
[--cap-upper=&lt;cap-upper&gt; | -u &lt;cap-upper&gt;]</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>For the NVMe device given, sends a capacity management command to configure/create/delete
the Endurance Groups or NVM Sets with the requested operation and element_id. On success,
if the Operation is Create Endurance group or NVM Set, CQE CDW0 contains Created element
identifier else CQE CDW0 is reserved.</p></div>
<div class="paragraph"><p>The &lt;device&gt; parameter is mandatory and may be either the NVMe character
device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
-o &lt;operation&gt;
</dt>
<dt class="hdlist1">
--operation=&lt;operation&gt;
</dt>
<dd>
<p>
Operation to be performed by the controller
</p>
</dd>
<dt class="hdlist1">
-i &lt;element-id&gt;
</dt>
<dt class="hdlist1">
--element-id=&lt;element-id&gt;
</dt>
<dd>
<p>
Value specific to the value of the Operation field.
</p>
</dd>
<dt class="hdlist1">
-l &lt;cap-lower&gt;
</dt>
<dt class="hdlist1">
--cap-lower=&lt;cap-lower&gt;
</dt>
<dd>
<p>
Least significant 32 bits of the capacity in bytes of the Endurance Group or
NVM Set to be created
</p>
</dd>
<dt class="hdlist1">
-u &lt;cap-upper&gt;
</dt>
<dt class="hdlist1">
--cap-upper=&lt;cap-upper&gt;
</dt>
<dd>
<p>
Most significant 32 bits of the capacity in bytes of the Endurance Group or
NVM Set to be created
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="paragraph"><p>No examples provided yet.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_nvme">NVME</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the nvme-user suite</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-02 09:55:05 IST
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,54 @@
nvme-capacity-mgmt(1)
=====================
NAME
----
nvme-capacity-mgmt - Send capacity management command to configure/create/delete
Endurance Groups or NVM Sets, returns results.
SYNOPSIS
--------
[verse]
'nvme capacity-mgmt' <device> [--operation=<operation> | -o <operation>]
[--element-id=<element-id> | -i <element-id>]
[--cap-lower=<cap-lower> | -l <cap-lower>]
[--cap-upper=<cap-upper> | -u <cap-upper>]
DESCRIPTION
-----------
For the NVMe device given, sends a capacity management command to
configure/create/delete the Endurance Groups or NVM Sets with the requested
operation and element_id. On success, if the Operation is Create Endurance
group or NVM Set, CQE CDW0 contains Created element identifier else CQE CDW0 is
reserved.
The <device> parameter is mandatory and may be either the NVMe character
device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
OPTIONS
-------
-o <operation>::
--operation=<operation>::
Operation to be performed by the controller
-i <element-id>::
--element-id=<element-id>::
Value specific to the value of the Operation field.
-l <cap-lower>::
--cap-lower=<cap-lower>::
Least significant 32 bits of the capacity in bytes of the Endurance Group or
NVM Set to be created
-u <cap-upper>::
--cap-upper=<cap-upper>::
Most significant 32 bits of the capacity in bytes of the Endurance Group or
NVM Set to be created
EXAMPLES
--------
No examples provided yet.
NVME
----
Part of the nvme-user suite

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-compare
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 07/09/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-COMPARE" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-COMPARE" "1" "07/09/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -50,6 +50,7 @@ nvme-compare \- Send an NVMe Compare command, provide results
[\-\-show\-command | \-v]
[\-\-dry\-run | \-w]
[\-\-latency | \-t]
[\-\-storage\-tag\-check<storage\-tag\-check> | \-C <storage\-tag\-check>]
.fi
.SH "DESCRIPTION"
.sp
@ -202,6 +203,11 @@ be set\&. Otherwise \-\-dry\-run option will be
.RS 4
Print out the latency the IOCTL took (in us)\&.
.RE
.PP
\-\-storage\-tag\-check=<storage\-tag\-check>, \-C <storage\-tag\-check>
.RS 4
This bit specifies the Storage Tag field shall be checked as part of end\-to\-end data protection processing\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-compare(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
@ -94,7 +95,9 @@ ul > li > * { color: black; }
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
@ -223,7 +226,7 @@ div.exampleblock > div.content {
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
@ -763,7 +766,8 @@ nvme-compare(1) Manual Page
[--dsm=&lt;dsm&gt; | -D &lt;dsm&gt;]
[--show-command | -v]
[--dry-run | -w]
[--latency | -t]</pre>
[--latency | -t]
[--storage-tag-check&lt;storage-tag-check&gt; | -C &lt;storage-tag-check&gt;]</pre>
<div class="attribution">
</div></div>
</div>
@ -1037,6 +1041,18 @@ metadata is passes.</p></td>
Print out the latency the IOCTL took (in us).
</p>
</dd>
<dt class="hdlist1">
--storage-tag-check=&lt;storage-tag-check&gt;
</dt>
<dt class="hdlist1">
-C &lt;storage-tag-check&gt;
</dt>
<dd>
<p>
This bit specifies the Storage Tag field shall be checked as part of end-to-end
data protection processing.
</p>
</dd>
</dl></div>
</div>
</div>
@ -1056,7 +1072,8 @@ metadata is passes.</p></td>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2018-12-17 13:07:47 MST
Last updated
2021-07-09 14:16:50 IST
</div>
</div>
</body>

View file

@ -26,6 +26,7 @@ SYNOPSIS
[--show-command | -v]
[--dry-run | -w]
[--latency | -t]
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]
DESCRIPTION
-----------
@ -139,6 +140,11 @@ metadata is passes.
--latency::
Print out the latency the IOCTL took (in us).
--storage-tag-check=<storage-tag-check>::
-C <storage-tag-check>::
This bit specifies the Storage Tag field shall be checked as part of end-to-end
data protection processing.
EXAMPLES
--------
No examples yet.

View file

@ -13,6 +13,7 @@ SYNOPSIS
[--traddr=<traddr> | -a <traddr>]
[--trsvcid=<trsvcid> | -s <trsvcid>]
[--host-traddr=<traddr> | -w <traddr>]
[--host-iface=<iface> | -f <iface>]
[--hostnqn=<hostnqn> | -q <hostnqn>]
[--hostid=<hostid> | -I <hostid>]
[--raw=<filename> | -r <filename>]
@ -77,7 +78,14 @@ OPTIONS
-w <traddr>::
--host-traddr=<traddr>::
This field specifies the network address used on the host to connect
to the Discovery Controller.
to the Controller. For TCP, this sets the source address on the socket.
-f <iface>::
--host-iface=<iface>::
This field specifies the network interface used on the host to connect
to the Controller (e.g. IP eth1, enp2s0, enx78e7d1ea46da). This forces
the connection to be made on a specific interface instead of letting
the system decide.
-q <hostnqn>::
--hostnqn=<hostnqn>::

View file

@ -14,6 +14,7 @@ SYNOPSIS
[--traddr=<traddr> | -a <traddr>]
[--trsvcid=<trsvcid> | -s <trsvcid>]
[--host-traddr=<traddr> | -w <traddr>]
[--host-iface=<iface> | -f <iface>]
[--hostnqn=<hostnqn> | -q <hostnqn>]
[--hostid=<hostid> | -I <hostid>]
[--nr-io-queues=<#> | -i <#>]
@ -27,6 +28,7 @@ SYNOPSIS
[--disable-sqflow | -d]
[--hdr-digest | -g]
[--data-digest | -G]
[--output-format=<fmt> | -o <fmt>]
DESCRIPTION
-----------
@ -69,7 +71,14 @@ OPTIONS
-w <traddr>::
--host-traddr=<traddr>::
This field specifies the network address used on the host to connect
to the Controller.
to the Controller. For TCP, this sets the source address on the socket.
-f <iface>::
--host-iface=<iface>::
This field specifies the network interface used on the host to connect
to the Controller (e.g. IP eth1, enp2s0, enx78e7d1ea46da). This forces
the connection to be made on a specific interface instead of letting
the system decide.
-q <hostnqn>::
--hostnqn=<hostnqn>::
@ -132,6 +141,12 @@ OPTIONS
--data-digest::
Generates/verifies data digest (TCP).
-o <format>::
--output-format=<format>::
Set the reporting format to 'normal' or 'json'. Only one output format can
be used at a time. When this option is specified, the device associated with
the connection will be printed. Nothing is printed otherwise.
EXAMPLES
--------
* Connect to a subsystem named nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432

View file

@ -13,6 +13,7 @@ SYNOPSIS
[--traddr=<traddr> | -a <traddr>]
[--trsvcid=<trsvcid> | -s <trsvcid>]
[--host-traddr=<traddr> | -w <traddr>]
[--host-iface=<iface> | -f <iface>]
[--hostnqn=<hostnqn> | -q <hostnqn>]
[--hostid=<hostid> | -I <hostid>]
[--raw=<filename> | -r <filename>]
@ -35,7 +36,7 @@ DESCRIPTION
Send one or more Get Log Page requests to a NVMe-over-Fabrics Discovery
Controller.
If no parameters are given, then 'nvme discover' will attempt to
If no parameters are given, then 'nvme discover' will attempt to
find a /etc/nvme/discovery.conf file to use to supply a list of
Discovery commands to run. If no /etc/nvme/discovery.conf file
exists, the command will quit with an error.
@ -46,7 +47,7 @@ request will then be sent to the specified Discovery Controller.
BACKGROUND
----------
The NVMe-over-Fabrics specification defines the concept of a
The NVMe-over-Fabrics specification defines the concept of a
Discovery Controller that an NVMe Host can query on a fabric
network to discover NVMe subsystems contained in NVMe Targets
which it can connect to on the network. The Discovery Controller
@ -66,7 +67,7 @@ resources are allocated to the NVMe Host for a connection.
A Discovery Controller has it's own NQN defined in the NVMe-over-Fabrics
specification, *nqn.2014-08.org.nvmexpress.discovery*. All Discovery
Controllers must use this NQN name. This NQN is used by default by
nvme-cli for the 'discover' command.
nvme-cli for the 'discover' command.
OPTIONS
-------
@ -99,11 +100,18 @@ OPTIONS
-w <traddr>::
--host-traddr=<traddr>::
This field specifies the network address used on the host to connect
to the Discovery Controller.
to the Controller. For TCP, this sets the source address on the socket.
-f <iface>::
--host-iface=<iface>::
This field specifies the network interface used on the host to connect
to the Controller (e.g. IP eth1, enp2s0, enx78e7d1ea46da). This forces
the connection to be made on a specific interface instead of letting
the system decide.
-q <hostnqn>::
--hostnqn=<hostnqn>::
Overrides the default host NQN that identifies the NVMe Host.
Overrides the default host NQN that identifies the NVMe Host.
If this option is not specified, the default is read from
/etc/nvme/hostnqn first. If that does not exist, the autogenerated
NQN value from the NVMe Host kernel module is used next.

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-get-feature
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/16/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-GET\-FEATURE" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-GET\-FEATURE" "1" "05/16/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -34,6 +34,7 @@ nvme-get-feature \- Gets an NVMe feature, returns applicable results
.nf
\fInvme get\-feature\fR <device> [\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-feature\-id=<fid> | \-f <fid>] [\-\-cdw11=<cdw11>]
[\-\-uuid\-index=<uuid\-index> | \-U <uuid_index>]
[\-\-data\-len=<data\-len> | \-l <data\-len>]
[\-\-sel=<select> | \-s <select>]
[\-\-raw\-binary | \-b]
@ -103,6 +104,11 @@ T}
.sp 1
.RE
.PP
\-U <uuid\-index>, \-\-uuid\-index=<uuid\-index>
.RS 4
UUID Index of the feature
.RE
.PP
\-l <data\-len>, \-\-data\-len=<data\-len>
.RS 4
The data length for the buffer returned for this feature\&. Most known features do not use this value\&. The exception is LBA Range Type
@ -185,8 +191,20 @@ Retrieves the feature for the some vendor specific feature and specifically requ
.if n \{\
.RE
.\}
.sp
Get feature with UUID index
.RE
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme get\-feature /dev/nvme0 \-f 0xc0 \-l 512 \-U 0x1
.fi
.if n \{\
.RE
.\}
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-get-feature(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
@ -94,7 +95,9 @@ ul > li > * { color: black; }
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
@ -223,7 +226,7 @@ div.exampleblock > div.content {
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
@ -433,7 +436,7 @@ thead, p.table.header {
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overridden by CSS in most browsers. */
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
@ -748,6 +751,7 @@ nvme-get-feature(1) Manual Page
<div class="verseblock">
<pre class="content"><em>nvme get-feature</em> &lt;device&gt; [--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--feature-id=&lt;fid&gt; | -f &lt;fid&gt;] [--cdw11=&lt;cdw11&gt;]
[--uuid-index=&lt;uuid-index&gt; | -U &lt;uuid_index&gt;]
[--data-len=&lt;data-len&gt; | -l &lt;data-len&gt;]
[--sel=&lt;select&gt; | -s &lt;select&gt;]
[--raw-binary | -b]
@ -847,6 +851,17 @@ cellspacing="0" cellpadding="4">
</div>
</dd>
<dt class="hdlist1">
-U &lt;uuid-index&gt;
</dt>
<dt class="hdlist1">
--uuid-index=&lt;uuid-index&gt;
</dt>
<dd>
<p>
UUID Index of the feature
</p>
</dd>
<dt class="hdlist1">
-l &lt;data-len&gt;
</dt>
<dt class="hdlist1">
@ -928,7 +943,14 @@ will be displayed to the user in as a hex dump:
<div class="content">
<pre><code># nvme get-feature /dev/nvme0 -f 0xc0 -l 512</code></pre>
</div></div>
<div class="paragraph"><p>Get feature with UUID index</p></div>
</li>
</ul></div>
<div class="listingblock">
<div class="content">
<pre><code># nvme get-feature /dev/nvme0 -f 0xc0 -l 512 -U 0x1</code></pre>
</div></div>
<div class="ulist"><ul>
<li>
<p>
The following retrieves the feature for the LBA Range Type, which
@ -954,7 +976,8 @@ format:
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2018-02-07 09:54:27 MST
Last updated
2021-05-16 00:13:16 IST
</div>
</div>
</body>

View file

@ -10,6 +10,7 @@ SYNOPSIS
[verse]
'nvme get-feature' <device> [--namespace-id=<nsid> | -n <nsid>]
[--feature-id=<fid> | -f <fid>] [--cdw11=<cdw11>]
[--uuid-index=<uuid-index> | -U <uuid_index>]
[--data-len=<data-len> | -l <data-len>]
[--sel=<select> | -s <select>]
[--raw-binary | -b]
@ -57,6 +58,10 @@ OPTIONS
|47|Reserved
|==================
-U <uuid-index>::
--uuid-index=<uuid-index>::
UUID Index of the feature
-l <data-len>::
--data-len=<data-len>::
The data length for the buffer returned for this feature. Most
@ -102,6 +107,10 @@ will be displayed to the user in as a hex dump:
# nvme get-feature /dev/nvme0 -f 0xc0 -l 512
------------
+
Get feature with UUID index
------------
# nvme get-feature /dev/nvme0 -f 0xc0 -l 512 -U 0x1
------------
* The following retrieves the feature for the LBA Range Type, which
implicitly requires a buffer and will be saved to a file in its raw

View file

@ -0,0 +1,134 @@
'\" t
.\" Title: nvme-get-lba-status
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/11/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-GET\-LBA\-STAT" "1" "05/11/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-get-lba-status \- Get LBA Status from NVMe device
.SH "SYNOPSIS"
.sp
.nf
\fInvme get\-lba\-status\fR <device> [\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-start\-lba=<slba> | \-s <slba>]
[\-\-max\-dw=<max\-dw> | \-m <max\-dw>]
[\-\-action=<action\-type> | \-a <action\-type>]
[\-\-range\-len=<range\-len> | \-l <range\-len>]
[\-\-timeout=<timeout> | \-t <timeout> ]
[\-\-output\-format=<format> | \-o <format>]
.fi
.SH "DESCRIPTION"
.sp
For the NVMe device given, send an nvme Get LBA Status admin command and provides the results\&.
.sp
The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&.
.sp
On success, the returned get lba data structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse\&.
.SH "OPTIONS"
.PP
\-n <nsid>, \-\-namespace\-id=<nsid>
.RS 4
Send the Get LBA Status command for the specified nsid\&. This can be used to override the default value for either character device (unspecified) or the block device (result from NVME_IOCTL_ID)\&.
.RE
.PP
\-s <slba>, \-\-start\-lba=<slba>
.RS 4
Starting LBA(SLBA) in 64\-bit address of the first logical block addressed
.RE
.PP
\-m <max\-dw>, \-\-max\-dw=<max\-dw>
.RS 4
Maximum Number of Dwords(MNDW) specifies maximum number of dwords to return
.RE
.PP
\-a <action\-type>, \-\-action=<action\-type>
.RS 4
Action Type(ATYPE) specifies the mechanism it uses in determining the LBA Status Descriptors\&.
.RE
.PP
\-l <range\-len>, \-\-range\-len=<range\-len>
.RS 4
Range Length(RL) specifies the length of the range of contiguous LBAs beginning at SLBA
.RE
.PP
\-t <timeout>, \-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.PP
\-o <format>, \-\-output\-format=<format>
.RS 4
Set the reporting format to
\fInormal\fR,
\fIjson\fR, or
\fIbinary\fR\&. Only one output format can be used at a time\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Get the LBA Status of the device using all defaults:
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme get\-lba\-status /dev/nvme0n1
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Get LBA Status of the namespace 1 from SLBA 10 for the max Dwords of 0x1000
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme get\-lba\-status /dev/nvme0 \-\-namespace\-id=1 \-\-start\-lba=10 \-\-max\-dw=0x1000
.fi
.if n \{\
.RE
.\}
.RE
.SH "NVME"
.sp
Part of the nvme\-user suite

View file

@ -0,0 +1,903 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-get-lba-status(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
/* Default font. */
body {
font-family: Georgia,serif;
}
/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
font-family: Arial,Helvetica,sans-serif;
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
h5 {
font-size: 1.0em;
}
div.sectionbody {
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
ul > li { color: #aaa; }
ul > li > * { color: black; }
.monospaced, code, pre {
font-family: "Courier New", Courier, monospace;
font-size: inherit;
color: navy;
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
font-weight: bold;
font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}
#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
#footer-text {
float: left;
padding-bottom: 0.5em;
}
#footer-badges {
float: right;
padding-bottom: 0.5em;
}
#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid #dddddd;
border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid #dddddd;
border-left: 5px solid #f0f0f0;
background: #f8f8f8;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #f0f0f0;
color: #888;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > pre.content {
font-family: inherit;
font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
div.colist td {
padding-right: 0.5em;
padding-bottom: 0.3em;
vertical-align: top;
}
div.colist td img {
margin-top: 0.3em;
}
@media print {
#footer-badges { display: none; }
}
#toc {
margin-bottom: 2.5em;
}
#toctitle {
color: #527bbd;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }
span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }
span.big { font-size: 2em; }
span.small { font-size: 0.6em; }
span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }
div.unbreakable { page-break-inside: avoid; }
/*
* xhtml11 specific
*
* */
div.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-weight: bold;
color: #527bbd;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
/*
* html5 specific
*
* */
table.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
thead, p.tableblock.header {
font-weight: bold;
color: #527bbd;
}
p.tableblock {
margin-top: 0;
}
table.tableblock {
border-width: 3px;
border-spacing: 0px;
border-style: solid;
border-color: #527bbd;
border-collapse: collapse;
}
th.tableblock, td.tableblock {
border-width: 1px;
padding: 4px;
border-style: solid;
border-color: #527bbd;
}
table.tableblock.frame-topbot {
border-left-style: hidden;
border-right-style: hidden;
}
table.tableblock.frame-sides {
border-top-style: hidden;
border-bottom-style: hidden;
}
table.tableblock.frame-none {
border-style: hidden;
}
th.tableblock.halign-left, td.tableblock.halign-left {
text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
th.tableblock.valign-top, td.tableblock.valign-top {
vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
vertical-align: bottom;
}
/*
* manpage specific
*
* */
body.manpage h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
body.manpage h2 {
border-style: none;
}
body.manpage div.sectionbody {
margin-left: 3em;
}
@media print {
body.manpage div#toc { display: none; }
}
</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////
/* Author: Mihai Bazon, September 2002
* http://students.infoiasi.ro/~mishoo
*
* Table Of Content generator
* Version: 0.4
*
* Feel free to use this script under the terms of the GNU General Public
* License, as long as you do not remove or alter this notice.
*/
/* modified by Troy D. Hanson, September 2006. License: GPL */
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
// toclevels = 1..4.
toc: function (toclevels) {
function getText(el) {
var text = "";
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
text += i.data;
else if (i.firstChild != null)
text += getText(i);
}
return text;
}
function TocEntry(el, text, toclevel) {
this.element = el;
this.text = text;
this.toclevel = toclevel;
}
function tocEntries(el, toclevels) {
var result = new Array;
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
if (!toc) {
return;
}
// Delete existing TOC entries in case we're reloading the TOC.
var tocEntriesToRemove = [];
var i;
for (i = 0; i < toc.childNodes.length; i++) {
var entry = toc.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div'
&& entry.getAttribute("class")
&& entry.getAttribute("class").match(/^toclevel/))
tocEntriesToRemove.push(entry);
}
for (i = 0; i < tocEntriesToRemove.length; i++) {
toc.removeChild(tocEntriesToRemove[i]);
}
// Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
// Delete existing footnote entries in case we're reloading the footnodes.
var i;
var noteholder = document.getElementById("footnotes");
if (!noteholder) {
return;
}
var entriesToRemove = [];
for (i = 0; i < noteholder.childNodes.length; i++) {
var entry = noteholder.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
entriesToRemove.push(entry);
}
for (i = 0; i < entriesToRemove.length; i++) {
noteholder.removeChild(entriesToRemove[i]);
}
// Rebuild footnote entries.
var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
var note = spans[i].getAttribute("data-note");
if (!note) {
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
spans[i].setAttribute("data-note", note);
}
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
},
install: function(toclevels) {
var timerId;
function reinstall() {
asciidoc.footnotes();
if (toclevels) {
asciidoc.toc(toclevels);
}
}
function reinstallAndRemoveTimer() {
clearInterval(timerId);
reinstall();
}
timerId = setInterval(reinstall, 500);
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
else
window.onload = reinstallAndRemoveTimer;
}
}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
nvme-get-lba-status(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>nvme-get-lba-status -
Get LBA Status from NVMe device
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme get-lba-status</em> &lt;device&gt; [--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--start-lba=&lt;slba&gt; | -s &lt;slba&gt;]
[--max-dw=&lt;max-dw&gt; | -m &lt;max-dw&gt;]
[--action=&lt;action-type&gt; | -a &lt;action-type&gt;]
[--range-len=&lt;range-len&gt; | -l &lt;range-len&gt;]
[--timeout=&lt;timeout&gt; | -t &lt;timeout&gt; ]
[--output-format=&lt;format&gt; | -o &lt;format&gt;]</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>For the NVMe device given, send an nvme Get LBA Status admin command
and provides the results.</p></div>
<div class="paragraph"><p>The &lt;device&gt; parameter is mandatory and may be either the NVMe character
device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).</p></div>
<div class="paragraph"><p>On success, the returned get lba data structure may be returned in one of
several ways depending on the option flags; the structure may parsed by
the program and printed in a readable format or the raw buffer may be
printed to stdout for another program to parse.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
-n &lt;nsid&gt;
</dt>
<dt class="hdlist1">
--namespace-id=&lt;nsid&gt;
</dt>
<dd>
<p>
Send the Get LBA Status command for the specified nsid. This can be
used to override the default value for either character device
(unspecified) or the block device (result from NVME_IOCTL_ID).
</p>
</dd>
<dt class="hdlist1">
-s &lt;slba&gt;
</dt>
<dt class="hdlist1">
--start-lba=&lt;slba&gt;
</dt>
<dd>
<p>
Starting LBA(SLBA) in 64-bit address of the first logical block addressed
</p>
</dd>
<dt class="hdlist1">
-m &lt;max-dw&gt;
</dt>
<dt class="hdlist1">
--max-dw=&lt;max-dw&gt;
</dt>
<dd>
<p>
Maximum Number of Dwords(MNDW) specifies maximum number of dwords to return
</p>
</dd>
<dt class="hdlist1">
-a &lt;action-type&gt;
</dt>
<dt class="hdlist1">
--action=&lt;action-type&gt;
</dt>
<dd>
<p>
Action Type(ATYPE) specifies the mechanism it uses in determining the LBA Status Descriptors.
</p>
</dd>
<dt class="hdlist1">
-l &lt;range-len&gt;
</dt>
<dt class="hdlist1">
--range-len=&lt;range-len&gt;
</dt>
<dd>
<p>
Range Length(RL) specifies the length of the range of contiguous LBAs beginning at SLBA
</p>
</dd>
<dt class="hdlist1">
-t &lt;timeout&gt;
</dt>
<dt class="hdlist1">
--timeout=&lt;timeout&gt;
</dt>
<dd>
<p>
Override default timeout value. In milliseconds.
</p>
</dd>
<dt class="hdlist1">
-o &lt;format&gt;
</dt>
<dt class="hdlist1">
--output-format=&lt;format&gt;
</dt>
<dd>
<p>
Set the reporting format to <em>normal</em>, <em>json</em>, or
<em>binary</em>. Only one output format can be used at a time.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Get the LBA Status of the device using all defaults:
</p>
<div class="listingblock">
<div class="content">
<pre><code># nvme get-lba-status /dev/nvme0n1</code></pre>
</div></div>
</li>
<li>
<p>
Get LBA Status of the namespace 1 from SLBA 10 for the max Dwords of 0x1000
</p>
<div class="listingblock">
<div class="content">
<pre><code># nvme get-lba-status /dev/nvme0 --namespace-id=1 --start-lba=10 --max-dw=0x1000</code></pre>
</div></div>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_nvme">NVME</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the nvme-user suite</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-05-11 11:28:04 IST
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,82 @@
nvme-get-lba-status(1)
======================
NAME
----
nvme-get-lba-status - Get LBA Status from NVMe device
SYNOPSIS
--------
[verse]
'nvme get-lba-status' <device> [--namespace-id=<nsid> | -n <nsid>]
[--start-lba=<slba> | -s <slba>]
[--max-dw=<max-dw> | -m <max-dw>]
[--action=<action-type> | -a <action-type>]
[--range-len=<range-len> | -l <range-len>]
[--timeout=<timeout> | -t <timeout> ]
[--output-format=<format> | -o <format>]
DESCRIPTION
-----------
For the NVMe device given, send an nvme Get LBA Status admin command
and provides the results.
The <device> parameter is mandatory and may be either the NVMe character
device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
On success, the returned get lba data structure may be returned in one of
several ways depending on the option flags; the structure may parsed by
the program and printed in a readable format or the raw buffer may be
printed to stdout for another program to parse.
OPTIONS
-------
-n <nsid>::
--namespace-id=<nsid>::
Send the Get LBA Status command for the specified nsid. This can be
used to override the default value for either character device
(unspecified) or the block device (result from NVME_IOCTL_ID).
-s <slba>::
--start-lba=<slba>::
Starting LBA(SLBA) in 64-bit address of the first logical block addressed
-m <max-dw>::
--max-dw=<max-dw>::
Maximum Number of Dwords(MNDW) specifies maximum number of dwords to return
-a <action-type>::
--action=<action-type>::
Action Type(ATYPE) specifies the mechanism it uses in determining the LBA Status Descriptors.
-l <range-len>::
--range-len=<range-len>::
Range Length(RL) specifies the length of the range of contiguous LBAs beginning at SLBA
-t <timeout>::
--timeout=<timeout>::
Override default timeout value. In milliseconds.
-o <format>::
--output-format=<format>::
Set the reporting format to 'normal', 'json', or
'binary'. Only one output format can be used at a time.
EXAMPLES
--------
* Get the LBA Status of the device using all defaults:
+
------------
# nvme get-lba-status /dev/nvme0n1
------------
+
* Get LBA Status of the namespace 1 from SLBA 10 for the max Dwords of 0x1000
+
------------
# nvme get-lba-status /dev/nvme0 --namespace-id=1 --start-lba=10 --max-dw=0x1000
------------
NVME
----
Part of the nvme-user suite

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-get-log
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 06/12/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-GET\-LOG" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-GET\-LOG" "1" "06/12/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -33,13 +33,16 @@ nvme-get-log \- Retrieves a log page from an NVMe device
.sp
.nf
\fInvme get\-log\fR <device> [\-\-log\-id=<log\-id> | \-i <log\-id>]
[\-\-log\-len=<log\-len> | \-l <log\-len>]
[\-\-aen=<aen> | \-a <aen>]
[\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-raw\-binary | \-b]
[\-\-lpo=<offset> | \-o <offset>]
[\-\-lsp=<field> | \-s <field>]
[\-\-rae | \-r]
[\-\-log\-len=<log\-len> | \-l <log\-len>]
[\-\-aen=<aen> | \-a <aen>]
[\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-raw\-binary | \-b]
[\-\-lpo=<offset> | \-o <offset>]
[\-\-lsp=<field> | \-s <field>]
[\-\-lsi=<field> | \-S <field>]
[\-\-rae | \-r]
[\-\-csi=<command_set_identifier> | \-y <command_set_identifier>]
[\-\-ot | \-O]
.fi
.SH "DESCRIPTION"
.sp
@ -85,10 +88,25 @@ The log page offset specifies the location within a log page to start returning
The log specified field of LID\&.
.RE
.PP
\-S <field>, \-\-lsi=<field>
.RS 4
The log specified field of Log Specific Identifier\&.
.RE
.PP
\-r, \-\-rae
.RS 4
Retain an Asynchronous Event\&.
.RE
.PP
\-y <command_set_identifier>, \-\-csi=<command_set_identifier>
.RS 4
This field specifies the identifier of command set\&. if not issued, NVM Command Set will be selected\&.
.RE
.PP
\-O, \-\-ot
.RS 4
Offset Type
.RE
.SH "EXAMPLES"
.sp
.RS 4

View file

@ -750,13 +750,16 @@ nvme-get-log(1) Manual Page
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme get-log</em> &lt;device&gt; [--log-id=&lt;log-id&gt; | -i &lt;log-id&gt;]
[--log-len=&lt;log-len&gt; | -l &lt;log-len&gt;]
[--aen=&lt;aen&gt; | -a &lt;aen&gt;]
[--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--raw-binary | -b]
[--lpo=&lt;offset&gt; | -o &lt;offset&gt;]
[--lsp=&lt;field&gt; | -s &lt;field&gt;]
[--rae | -r]</pre>
[--log-len=&lt;log-len&gt; | -l &lt;log-len&gt;]
[--aen=&lt;aen&gt; | -a &lt;aen&gt;]
[--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--raw-binary | -b]
[--lpo=&lt;offset&gt; | -o &lt;offset&gt;]
[--lsp=&lt;field&gt; | -s &lt;field&gt;]
[--lsi=&lt;field&gt; | -S &lt;field&gt;]
[--rae | -r]
[--csi=&lt;command_set_identifier&gt; | -y &lt;command_set_identifier&gt;]
[--ot | -O]</pre>
<div class="attribution">
</div></div>
</div>
@ -864,6 +867,17 @@ program to parse.</p></div>
</p>
</dd>
<dt class="hdlist1">
-S &lt;field&gt;
</dt>
<dt class="hdlist1">
--lsi=&lt;field&gt;
</dt>
<dd>
<p>
The log specified field of Log Specific Identifier.
</p>
</dd>
<dt class="hdlist1">
-r
</dt>
<dt class="hdlist1">
@ -874,6 +888,29 @@ program to parse.</p></div>
Retain an Asynchronous Event.
</p>
</dd>
<dt class="hdlist1">
-y &lt;command_set_identifier&gt;
</dt>
<dt class="hdlist1">
--csi=&lt;command_set_identifier&gt;
</dt>
<dd>
<p>
This field specifies the identifier of command set.
if not issued, NVM Command Set will be selected.
</p>
</dd>
<dt class="hdlist1">
-O
</dt>
<dt class="hdlist1">
--ot
</dt>
<dd>
<p>
Offset Type
</p>
</dd>
</dl></div>
</div>
</div>
@ -918,7 +955,7 @@ Have the program return the raw log page in binary:
<div id="footer">
<div id="footer-text">
Last updated
2019-09-18 00:00:58 JST
2021-06-12 14:47:50 IST
</div>
</div>
</body>

View file

@ -9,13 +9,16 @@ SYNOPSIS
--------
[verse]
'nvme get-log' <device> [--log-id=<log-id> | -i <log-id>]
[--log-len=<log-len> | -l <log-len>]
[--aen=<aen> | -a <aen>]
[--namespace-id=<nsid> | -n <nsid>]
[--raw-binary | -b]
[--lpo=<offset> | -o <offset>]
[--lsp=<field> | -s <field>]
[--rae | -r]
[--log-len=<log-len> | -l <log-len>]
[--aen=<aen> | -a <aen>]
[--namespace-id=<nsid> | -n <nsid>]
[--raw-binary | -b]
[--lpo=<offset> | -o <offset>]
[--lsp=<field> | -s <field>]
[--lsi=<field> | -S <field>]
[--rae | -r]
[--csi=<command_set_identifier> | -y <command_set_identifier>]
[--ot | -O]
DESCRIPTION
-----------
@ -68,10 +71,23 @@ OPTIONS
--lsp=<field>::
The log specified field of LID.
-S <field>::
--lsi=<field>::
The log specified field of Log Specific Identifier.
-r::
--rae::
Retain an Asynchronous Event.
-y <command_set_identifier>::
--csi=<command_set_identifier>::
This field specifies the identifier of command set.
if not issued, NVM Command Set will be selected.
-O::
--ot::
Offset Type
EXAMPLES
--------
* Get 512 bytes from log page 2

View file

@ -0,0 +1,62 @@
'\" t
.\" Title: nvme-id-domain
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 07/20/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-ID\-DOMAIN" "1" "07/20/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-id-domain \- Send NVMe Identify Domain List, return result and structure
.SH "SYNOPSIS"
.sp
.nf
\fInvme id\-domain\fR <device> [\-\-dom\-id=<domian_id> | \-d <domian_id>]
[\-o <fmt> | \-\-output\-format=<fmt>]
.fi
.SH "DESCRIPTION"
.sp
For the NVMe device given, send an identify command and return the domian list data structure\&.
.sp
The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&.
.SH "OPTIONS"
.PP
\-d <domian_id>, \-\-dom\-id=<domian_id>
.RS 4
Retrieve the identify domain list data structure for the given domain id\&. If this value is not given, domain id will be 0xffff\&.
.RE
.PP
\-o <format>, \-\-output\-format=<format>
.RS 4
Set the reporting format to
\fInormal\fR,
\fIjson\fR, or
\fIbinary\fR\&. Only one output format can be used at a time\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.
.SH "NVME"
.sp
Part of the nvme\-user suite

View file

@ -0,0 +1,819 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-id-domain(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
/* Default font. */
body {
font-family: Georgia,serif;
}
/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
font-family: Arial,Helvetica,sans-serif;
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
h5 {
font-size: 1.0em;
}
div.sectionbody {
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
ul > li { color: #aaa; }
ul > li > * { color: black; }
.monospaced, code, pre {
font-family: "Courier New", Courier, monospace;
font-size: inherit;
color: navy;
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
font-weight: bold;
font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}
#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
#footer-text {
float: left;
padding-bottom: 0.5em;
}
#footer-badges {
float: right;
padding-bottom: 0.5em;
}
#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid #dddddd;
border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid #dddddd;
border-left: 5px solid #f0f0f0;
background: #f8f8f8;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #f0f0f0;
color: #888;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > pre.content {
font-family: inherit;
font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
div.colist td {
padding-right: 0.5em;
padding-bottom: 0.3em;
vertical-align: top;
}
div.colist td img {
margin-top: 0.3em;
}
@media print {
#footer-badges { display: none; }
}
#toc {
margin-bottom: 2.5em;
}
#toctitle {
color: #527bbd;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }
span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }
span.big { font-size: 2em; }
span.small { font-size: 0.6em; }
span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }
div.unbreakable { page-break-inside: avoid; }
/*
* xhtml11 specific
*
* */
div.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-weight: bold;
color: #527bbd;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
/*
* html5 specific
*
* */
table.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
thead, p.tableblock.header {
font-weight: bold;
color: #527bbd;
}
p.tableblock {
margin-top: 0;
}
table.tableblock {
border-width: 3px;
border-spacing: 0px;
border-style: solid;
border-color: #527bbd;
border-collapse: collapse;
}
th.tableblock, td.tableblock {
border-width: 1px;
padding: 4px;
border-style: solid;
border-color: #527bbd;
}
table.tableblock.frame-topbot {
border-left-style: hidden;
border-right-style: hidden;
}
table.tableblock.frame-sides {
border-top-style: hidden;
border-bottom-style: hidden;
}
table.tableblock.frame-none {
border-style: hidden;
}
th.tableblock.halign-left, td.tableblock.halign-left {
text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
th.tableblock.valign-top, td.tableblock.valign-top {
vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
vertical-align: bottom;
}
/*
* manpage specific
*
* */
body.manpage h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
body.manpage h2 {
border-style: none;
}
body.manpage div.sectionbody {
margin-left: 3em;
}
@media print {
body.manpage div#toc { display: none; }
}
</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////
/* Author: Mihai Bazon, September 2002
* http://students.infoiasi.ro/~mishoo
*
* Table Of Content generator
* Version: 0.4
*
* Feel free to use this script under the terms of the GNU General Public
* License, as long as you do not remove or alter this notice.
*/
/* modified by Troy D. Hanson, September 2006. License: GPL */
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
// toclevels = 1..4.
toc: function (toclevels) {
function getText(el) {
var text = "";
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
text += i.data;
else if (i.firstChild != null)
text += getText(i);
}
return text;
}
function TocEntry(el, text, toclevel) {
this.element = el;
this.text = text;
this.toclevel = toclevel;
}
function tocEntries(el, toclevels) {
var result = new Array;
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
if (!toc) {
return;
}
// Delete existing TOC entries in case we're reloading the TOC.
var tocEntriesToRemove = [];
var i;
for (i = 0; i < toc.childNodes.length; i++) {
var entry = toc.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div'
&& entry.getAttribute("class")
&& entry.getAttribute("class").match(/^toclevel/))
tocEntriesToRemove.push(entry);
}
for (i = 0; i < tocEntriesToRemove.length; i++) {
toc.removeChild(tocEntriesToRemove[i]);
}
// Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
// Delete existing footnote entries in case we're reloading the footnodes.
var i;
var noteholder = document.getElementById("footnotes");
if (!noteholder) {
return;
}
var entriesToRemove = [];
for (i = 0; i < noteholder.childNodes.length; i++) {
var entry = noteholder.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
entriesToRemove.push(entry);
}
for (i = 0; i < entriesToRemove.length; i++) {
noteholder.removeChild(entriesToRemove[i]);
}
// Rebuild footnote entries.
var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
var note = spans[i].getAttribute("data-note");
if (!note) {
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
spans[i].setAttribute("data-note", note);
}
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
},
install: function(toclevels) {
var timerId;
function reinstall() {
asciidoc.footnotes();
if (toclevels) {
asciidoc.toc(toclevels);
}
}
function reinstallAndRemoveTimer() {
clearInterval(timerId);
reinstall();
}
timerId = setInterval(reinstall, 500);
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
else
window.onload = reinstallAndRemoveTimer;
}
}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
nvme-id-domain(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>nvme-id-domain -
Send NVMe Identify Domain List, return result and structure
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme id-domain</em> &lt;device&gt; [--dom-id=&lt;domian_id&gt; | -d &lt;domian_id&gt;]
[-o &lt;fmt&gt; | --output-format=&lt;fmt&gt;]</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>For the NVMe device given, send an identify command and return the domian list
data structure.</p></div>
<div class="paragraph"><p>The &lt;device&gt; parameter is mandatory and may be either the NVMe character
device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
-d &lt;domian_id&gt;
</dt>
<dt class="hdlist1">
--dom-id=&lt;domian_id&gt;
</dt>
<dd>
<p>
Retrieve the identify domain list data structure for the given
domain id. If this value is not given, domain id will be 0xffff.
</p>
</dd>
<dt class="hdlist1">
-o &lt;format&gt;
</dt>
<dt class="hdlist1">
--output-format=&lt;format&gt;
</dt>
<dd>
<p>
Set the reporting format to <em>normal</em>, <em>json</em>, or
<em>binary</em>. Only one output format can be used at a time.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="paragraph"><p>No examples yet.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_nvme">NVME</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the nvme-user suite</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-20 12:04:44 IST
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,40 @@
nvme-id-domain(1)
=================
NAME
----
nvme-id-domain - Send NVMe Identify Domain List, return result and structure
SYNOPSIS
--------
[verse]
'nvme id-domain' <device> [--dom-id=<domian_id> | -d <domian_id>]
[-o <fmt> | --output-format=<fmt>]
DESCRIPTION
-----------
For the NVMe device given, send an identify command and return the domian list
data structure.
The <device> parameter is mandatory and may be either the NVMe character
device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
OPTIONS
-------
-d <domian_id>::
--dom-id=<domian_id>::
Retrieve the identify domain list data structure for the given
domain id. If this value is not given, domain id will be 0xffff.
-o <format>::
--output-format=<format>::
Set the reporting format to 'normal', 'json', or
'binary'. Only one output format can be used at a time.
EXAMPLES
--------
No examples yet.
NVME
----
Part of the nvme-user suite

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-id-iocs
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/28/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-ID\-IOCS" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-ID\-IOCS" "1" "05/28/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -33,6 +33,7 @@ nvme-id-iocs \- Send NVMe Identify I/O Command Set, return result and structure
.sp
.nf
\fInvme id\-iocs\fR <device> [\-\-controller\-id=<cntid> | \-c <cntid>]
[\-o <fmt> | \-\-output\-format=<fmt>]
.fi
.SH "DESCRIPTION"
.sp
@ -45,6 +46,19 @@ The <device> parameter is mandatory and may be either the NVMe character device
.RS 4
Retrieve the identify I/O Command set data structure for the given cntid\&. If this value is not given, cntid will be 0xffff\&.
.RE
.PP
\-H, \-\-human\-readable
.RS 4
This option will parse and format many of the bit fields into human\-readable formats\&.
.RE
.PP
\-o <format>, \-\-output\-format=<format>
.RS 4
Set the reporting format to
\fInormal\fR,
\fIjson\fR, or
\fIbinary\fR\&. Only one output format can be used at a time\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4
@ -67,6 +81,27 @@ Have the program interpret the returned buffer and display the known fields in a
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
show the fields in human readable format
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme id\-iocs /dev/nvme0 \-H
.fi
.if n \{\
.RE
.\}
.RE
.SH "NVME"
.sp
Part of the nvme\-user suite

View file

@ -749,7 +749,8 @@ nvme-id-iocs(1) Manual Page
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme id-iocs</em> &lt;device&gt; [--controller-id=&lt;cntid&gt; | -c &lt;cntid&gt;]</pre>
<pre class="content"><em>nvme id-iocs</em> &lt;device&gt; [--controller-id=&lt;cntid&gt; | -c &lt;cntid&gt;]
[-o &lt;fmt&gt; | --output-format=&lt;fmt&gt;]</pre>
<div class="attribution">
</div></div>
</div>
@ -779,6 +780,30 @@ device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).</p></di
cntid. If this value is not given, cntid will be 0xffff.
</p>
</dd>
<dt class="hdlist1">
-H
</dt>
<dt class="hdlist1">
--human-readable
</dt>
<dd>
<p>
This option will parse and format many of the bit fields
into human-readable formats.
</p>
</dd>
<dt class="hdlist1">
-o &lt;format&gt;
</dt>
<dt class="hdlist1">
--output-format=&lt;format&gt;
</dt>
<dd>
<p>
Set the reporting format to <em>normal</em>, <em>json</em>, or
<em>binary</em>. Only one output format can be used at a time.
</p>
</dd>
</dl></div>
</div>
</div>
@ -796,6 +821,15 @@ fields in a human readable format:
<pre><code># nvme id-iocs /dev/nvme0</code></pre>
</div></div>
</li>
<li>
<p>
show the fields in human readable format
</p>
<div class="listingblock">
<div class="content">
<pre><code># nvme id-iocs /dev/nvme0 -H</code></pre>
</div></div>
</li>
</ul></div>
</div>
</div>
@ -810,7 +844,7 @@ fields in a human readable format:
<div id="footer">
<div id="footer-text">
Last updated
2020-05-06 10:39:59 CEST
2021-05-28 23:15:06 IST
</div>
</div>
</body>

View file

@ -9,6 +9,7 @@ SYNOPSIS
--------
[verse]
'nvme id-iocs' <device> [--controller-id=<cntid> | -c <cntid>]
[-o <fmt> | --output-format=<fmt>]
DESCRIPTION
-----------
@ -24,6 +25,15 @@ OPTIONS
--controller-id=<cntid>::
Retrieve the identify I/O Command set data structure for the given
cntid. If this value is not given, cntid will be 0xffff.
-H::
--human-readable::
This option will parse and format many of the bit fields
into human-readable formats.
-o <format>::
--output-format=<format>::
Set the reporting format to 'normal', 'json', or
'binary'. Only one output format can be used at a time.
EXAMPLES
--------
@ -33,7 +43,12 @@ fields in a human readable format:
------------
# nvme id-iocs /dev/nvme0
------------
+
* show the fields in human readable format
+
------------
# nvme id-iocs /dev/nvme0 -H
------------
NVME
----
Part of the nvme-user suite

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-io-passthru
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 06/04/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-IO\-PASSTHRU" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-IO\-PASSTHRU" "1" "06/04/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -47,6 +47,7 @@ nvme-io-passthru \- Submit an arbitrary io command, return results
[\-\-dry\-run | \-d]
[\-\-raw\-binary | \-b]
[\-\-prefill=<prefill> | \-p <prefill>]
[\-\-latency | \-T]
.fi
.SH "DESCRIPTION"
.sp
@ -125,6 +126,11 @@ Print the raw returned buffer to stdout if the command returns data or a structu
.RS 4
Prefill the buffer with a predetermined byte value\&. Defaults to 0\&. This may be useful if the data you are writing is shorter than the required buffer, and you need to pad it with a known value\&. It may also be useful if you need to confirm if a device is overwriting a buffer on a data\-in command\&.
.RE
.PP
\-T, \-\-latency
.RS 4
Print out the latency the IOCTL took (in us)\&.
.RE
.SH "EXAMPLES"
.sp
nvme io\-passthru /dev/nvme0n1 \-\-opcode=2 \-\-namespace\-id=1 \-\-data\-len=4096 \-\-read \-\-cdw10=0 \-\-cdw11=0 \-\-cdw12=0x70000 \-\-raw\-binary

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.9" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-io-passthru(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
@ -435,7 +436,7 @@ thead, p.table.header {
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overridden by CSS in most browsers. */
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
@ -762,7 +763,8 @@ nvme-io-passthru(1) Manual Page
[--show-command | -s]
[--dry-run | -d]
[--raw-binary | -b]
[--prefill=&lt;prefill&gt; | -p &lt;prefill&gt;]</pre>
[--prefill=&lt;prefill&gt; | -p &lt;prefill&gt;]
[--latency | -T]</pre>
<div class="attribution">
</div></div>
</div>
@ -944,6 +946,17 @@ printed to stdout for another program to parse.</p></div>
is overwriting a buffer on a data-in command.
</p>
</dd>
<dt class="hdlist1">
-T
</dt>
<dt class="hdlist1">
--latency
</dt>
<dd>
<p>
Print out the latency the IOCTL took (in us).
</p>
</dd>
</dl></div>
</div>
</div>
@ -964,7 +977,7 @@ printed to stdout for another program to parse.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2018-01-30 19:28:39 KST
2021-06-04 10:59:48 IST
</div>
</div>
</body>

View file

@ -23,6 +23,7 @@ SYNOPSIS
[--dry-run | -d]
[--raw-binary | -b]
[--prefill=<prefill> | -p <prefill>]
[--latency | -T]
DESCRIPTION
-----------
@ -106,6 +107,10 @@ OPTIONS
value. It may also be useful if you need to confirm if a device
is overwriting a buffer on a data-in command.
-T::
--latency::
Print out the latency the IOCTL took (in us).
EXAMPLES
--------

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-id-ns
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/16/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-ID\-NS" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-ID\-NS" "1" "05/16/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -33,7 +33,7 @@ nvme-list-ctrl \- Send NVMe Identify List Controllers, return result and structu
.sp
.nf
\fInvme list\-ctrl\fR <device> [\-\-cntid=<cntid> | \-c <cntid>]
[\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-namespace\-id=<nsid> | \-n <nsid>] [\-o <fmt> | \-\-output\-format=<fmt>]
DESCRIPTION
.fi
.sp
@ -62,6 +62,14 @@ Retrieve the identify list structure starting with the given controller id\&.
.RS 4
If provided, will request the controllers attached to the specified namespace\&. If no namespace is given, or set to 0, the command requests the controller list for the entire subsystem, whether or not they are attached to namespace(s)\&.
.RE
.PP
\-o <format>, \-\-output\-format=<format>
.RS 4
Set the reporting format to
\fInormal\fR
or
\fIjson\fR\&. Only one output format can be used at a time\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-id-ns(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
@ -94,7 +95,9 @@ ul > li > * { color: black; }
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
@ -223,7 +226,7 @@ div.exampleblock > div.content {
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
@ -433,7 +436,7 @@ thead, p.table.header {
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overridden by CSS in most browsers. */
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
@ -747,7 +750,7 @@ nvme-id-ns(1) Manual Page
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme list-ctrl</em> &lt;device&gt; [--cntid=&lt;cntid&gt; | -c &lt;cntid&gt;]
[--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;] [-o &lt;fmt&gt; | --output-format=&lt;fmt&gt;]
DESCRIPTION</pre>
<div class="attribution">
</div></div>
@ -793,6 +796,18 @@ OPTIONS</code></pre>
whether or not they are attached to namespace(s).
</p>
</dd>
<dt class="hdlist1">
-o &lt;format&gt;
</dt>
<dt class="hdlist1">
--output-format=&lt;format&gt;
</dt>
<dd>
<p>
Set the reporting format to <em>normal</em> or <em>json</em>. Only one output
format can be used at a time.
</p>
</dd>
</dl></div>
</div>
</div>
@ -812,7 +827,8 @@ OPTIONS</code></pre>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2016-05-16 12:47:42 EDT
Last updated
2021-05-16 13:00:43 IST
</div>
</div>
</body>

View file

@ -9,7 +9,7 @@ SYNOPSIS
--------
[verse]
'nvme list-ctrl' <device> [--cntid=<cntid> | -c <cntid>]
[--namespace-id=<nsid> | -n <nsid>]
[--namespace-id=<nsid> | -n <nsid>] [-o <fmt> | --output-format=<fmt>]
DESCRIPTION
-----------
For the NVMe device given, sends an identify command for controller list
@ -37,6 +37,11 @@ OPTIONS
command requests the controller list for the entire subsystem,
whether or not they are attached to namespace(s).
-o <format>::
--output-format=<format>::
Set the reporting format to 'normal' or 'json'. Only one output
format can be used at a time.
EXAMPLES
--------
No examples yet.

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-id-ns
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/16/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-ID\-NS" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-ID\-NS" "1" "05/16/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -34,7 +34,7 @@ nvme-list-ns \- Send NVMe Identify List Namespaces, return result and structure
.nf
\fInvme list\-ns\fR <device> [\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-csi=<command_set_identifier> | \-y <command_set_identifier>]
[\-\-all | \-a]
[\-\-all | \-a] [\-\-output\-format=<fmt> | \-o <fmt>]
.fi
.SH "DESCRIPTION"
.sp
@ -59,9 +59,56 @@ If this value is given, retrieve the identify list structure associated with the
.RS 4
Retrieve the identify list structure for all namespaces in the subsystem, whether attached or inactive\&.
.RE
.PP
\-o <format>, \-\-output\-format=<format>
.RS 4
Set the reporting format to
\fInormal\fR, or
\fIjson\fR\&. Only one output format can be used at a time\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Print the namespaces present for zoned command set in JSON format
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme list\-ns /dev/nvme0 \-y 2 \-a \-o json
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Print the namespaces present for NVM Command Set in normal format
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme list\-ns /dev/nvme0
.fi
.if n \{\
.RE
.\}
.RE
.SH "NVME"
.sp
Part of the nvme\-user suite

View file

@ -751,7 +751,7 @@ nvme-id-ns(1) Manual Page
<div class="verseblock">
<pre class="content"><em>nvme list-ns</em> &lt;device&gt; [--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--csi=&lt;command_set_identifier&gt; | -y &lt;command_set_identifier&gt;]
[--all | -a]</pre>
[--all | -a] [--output-format=&lt;fmt&gt; | -o &lt;fmt&gt;]</pre>
<div class="attribution">
</div></div>
</div>
@ -808,13 +808,44 @@ a valid nsid.</p></div>
subsystem, whether attached or inactive.
</p>
</dd>
<dt class="hdlist1">
-o &lt;format&gt;
</dt>
<dt class="hdlist1">
--output-format=&lt;format&gt;
</dt>
<dd>
<p>
Set the reporting format to <em>normal</em>, or <em>json</em>.
Only one output format can be used at a time.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="paragraph"><p>No examples yet.</p></div>
<div class="ulist"><ul>
<li>
<p>
Print the namespaces present for zoned command set in JSON format
</p>
<div class="listingblock">
<div class="content">
<pre><code># nvme list-ns /dev/nvme0 -y 2 -a -o json</code></pre>
</div></div>
</li>
<li>
<p>
Print the namespaces present for NVM Command Set in normal format
</p>
<div class="listingblock">
<div class="content">
<pre><code># nvme list-ns /dev/nvme0</code></pre>
</div></div>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
@ -828,7 +859,7 @@ a valid nsid.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
2020-05-06 10:35:44 CEST
2021-05-16 10:13:29 IST
</div>
</div>
</body>

View file

@ -10,7 +10,7 @@ SYNOPSIS
[verse]
'nvme list-ns' <device> [--namespace-id=<nsid> | -n <nsid>]
[--csi=<command_set_identifier> | -y <command_set_identifier>]
[--all | -a]
[--all | -a] [--output-format=<fmt> | -o <fmt>]
DESCRIPTION
-----------
@ -41,9 +41,24 @@ OPTIONS
Retrieve the identify list structure for all namespaces in the
subsystem, whether attached or inactive.
-o <format>::
--output-format=<format>::
Set the reporting format to 'normal', or 'json'.
Only one output format can be used at a time.
EXAMPLES
--------
No examples yet.
* Print the namespaces present for zoned command set in JSON format
+
------------
# nvme list-ns /dev/nvme0 -y 2 -a -o json
------------
* Print the namespaces present for NVM Command Set in normal format
+
------------
# nvme list-ns /dev/nvme0
------------
NVME
----

View file

@ -0,0 +1,87 @@
'\" t
.\" Title: nvme-micron-smart-add-log
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/31/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-MICRON\-SMART\" "1" "05/31/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-micron-smart-add-log \- Retrieves NAND statistics (2200 model drives) or Extended SMART information (OCP complaint models) of given micron device
.SH "SYNOPSIS"
.sp
.nf
\fInvme micron vs\-smart\-add\-log\fR <device> \-f <json|normal>
.fi
.SH "DESCRIPTION"
.sp
This command prints NAND information (Total bytes written, Bad block count and Erase failures etc) for the given micron device if its of 2200 model controller\&. For OCP complaint controllers this command print extended SMART health data along with NAND information (if available)
.sp
The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&.
.sp
The \fI\-f\fR option controls the displayed output data format based on the option value\&. If the option value is \fIjson\fR (which is enabled by default), output data is printed in JSON format\&. If option value is \fInormal\fR the output is displayed in non\-JSON format\&.
.sp
This will only work on Micron devices devices of model numbers 54XX and OCP complaint controllers\&. Support for new devices may be added subsequently\&.
.SH "OPTIONS"
.sp
\-f <json|normal> controls the format of displayed output\&.
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Retrieve NAND/extended SMART data and display in json format
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme micron vs\-nand\-stats /dev/nvme0
* Retrieve NAND/extended SMART data and display in non\-json format
+
.fi
.if n \{\
.RE
.\}
.RE
.sp
# nvme micron vs\-nand\-stats /dev/nvme0 \-f normal
.sp
.if n \{\
.RS 4
.\}
.nf
NVME
.fi
.if n \{\
.RE
.\}
.sp
Part of the nvme\-user suite

View file

@ -0,0 +1,815 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-micron-smart-add-log(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
/* Default font. */
body {
font-family: Georgia,serif;
}
/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
font-family: Arial,Helvetica,sans-serif;
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
h5 {
font-size: 1.0em;
}
div.sectionbody {
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
ul > li { color: #aaa; }
ul > li > * { color: black; }
.monospaced, code, pre {
font-family: "Courier New", Courier, monospace;
font-size: inherit;
color: navy;
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
font-weight: bold;
font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}
#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
#footer-text {
float: left;
padding-bottom: 0.5em;
}
#footer-badges {
float: right;
padding-bottom: 0.5em;
}
#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid #dddddd;
border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid #dddddd;
border-left: 5px solid #f0f0f0;
background: #f8f8f8;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #f0f0f0;
color: #888;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > pre.content {
font-family: inherit;
font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
div.colist td {
padding-right: 0.5em;
padding-bottom: 0.3em;
vertical-align: top;
}
div.colist td img {
margin-top: 0.3em;
}
@media print {
#footer-badges { display: none; }
}
#toc {
margin-bottom: 2.5em;
}
#toctitle {
color: #527bbd;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }
span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }
span.big { font-size: 2em; }
span.small { font-size: 0.6em; }
span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }
div.unbreakable { page-break-inside: avoid; }
/*
* xhtml11 specific
*
* */
div.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-weight: bold;
color: #527bbd;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
/*
* html5 specific
*
* */
table.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
thead, p.tableblock.header {
font-weight: bold;
color: #527bbd;
}
p.tableblock {
margin-top: 0;
}
table.tableblock {
border-width: 3px;
border-spacing: 0px;
border-style: solid;
border-color: #527bbd;
border-collapse: collapse;
}
th.tableblock, td.tableblock {
border-width: 1px;
padding: 4px;
border-style: solid;
border-color: #527bbd;
}
table.tableblock.frame-topbot {
border-left-style: hidden;
border-right-style: hidden;
}
table.tableblock.frame-sides {
border-top-style: hidden;
border-bottom-style: hidden;
}
table.tableblock.frame-none {
border-style: hidden;
}
th.tableblock.halign-left, td.tableblock.halign-left {
text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
th.tableblock.valign-top, td.tableblock.valign-top {
vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
vertical-align: bottom;
}
/*
* manpage specific
*
* */
body.manpage h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
body.manpage h2 {
border-style: none;
}
body.manpage div.sectionbody {
margin-left: 3em;
}
@media print {
body.manpage div#toc { display: none; }
}
</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////
/* Author: Mihai Bazon, September 2002
* http://students.infoiasi.ro/~mishoo
*
* Table Of Content generator
* Version: 0.4
*
* Feel free to use this script under the terms of the GNU General Public
* License, as long as you do not remove or alter this notice.
*/
/* modified by Troy D. Hanson, September 2006. License: GPL */
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
// toclevels = 1..4.
toc: function (toclevels) {
function getText(el) {
var text = "";
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
text += i.data;
else if (i.firstChild != null)
text += getText(i);
}
return text;
}
function TocEntry(el, text, toclevel) {
this.element = el;
this.text = text;
this.toclevel = toclevel;
}
function tocEntries(el, toclevels) {
var result = new Array;
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
if (!toc) {
return;
}
// Delete existing TOC entries in case we're reloading the TOC.
var tocEntriesToRemove = [];
var i;
for (i = 0; i < toc.childNodes.length; i++) {
var entry = toc.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div'
&& entry.getAttribute("class")
&& entry.getAttribute("class").match(/^toclevel/))
tocEntriesToRemove.push(entry);
}
for (i = 0; i < tocEntriesToRemove.length; i++) {
toc.removeChild(tocEntriesToRemove[i]);
}
// Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
// Delete existing footnote entries in case we're reloading the footnodes.
var i;
var noteholder = document.getElementById("footnotes");
if (!noteholder) {
return;
}
var entriesToRemove = [];
for (i = 0; i < noteholder.childNodes.length; i++) {
var entry = noteholder.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
entriesToRemove.push(entry);
}
for (i = 0; i < entriesToRemove.length; i++) {
noteholder.removeChild(entriesToRemove[i]);
}
// Rebuild footnote entries.
var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
var note = spans[i].getAttribute("data-note");
if (!note) {
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
spans[i].setAttribute("data-note", note);
}
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
},
install: function(toclevels) {
var timerId;
function reinstall() {
asciidoc.footnotes();
if (toclevels) {
asciidoc.toc(toclevels);
}
}
function reinstallAndRemoveTimer() {
clearInterval(timerId);
reinstall();
}
timerId = setInterval(reinstall, 500);
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
else
window.onload = reinstallAndRemoveTimer;
}
}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
nvme-micron-smart-add-log(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>nvme-micron-smart-add-log -
Retrieves NAND statistics (2200 model drives) or Extended SMART information (OCP complaint models) of given micron device
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme micron vs-smart-add-log</em> &lt;device&gt; -f &lt;json|normal&gt;</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>This command prints NAND information (Total bytes written, Bad block count and
Erase failures etc) for the given micron device if its of 2200 model controller.
For OCP complaint controllers this command print extended SMART health data
along with NAND information (if available)</p></div>
<div class="paragraph"><p>The &lt;device&gt; parameter is mandatory and may be either the NVMe
character device (ex: /dev/nvme0), or a namespace block device (ex:
/dev/nvme0n1).</p></div>
<div class="paragraph"><p>The <em>-f</em> option controls the displayed output data format based on the option
value. If the option value is <em>json</em> (which is enabled by default), output data
is printed in JSON format. If option value is <em>normal</em> the output is displayed
in non-JSON format.</p></div>
<div class="paragraph"><p>This will only work on Micron devices devices of model numbers 54XX and OCP
complaint controllers. Support for new devices may be added subsequently.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="paragraph"><p>-f &lt;json|normal&gt; controls the format of displayed output.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Retrieve NAND/extended SMART data and display in json format
</p>
<div class="listingblock">
<div class="content">
<pre><code># nvme micron vs-nand-stats /dev/nvme0
* Retrieve NAND/extended SMART data and display in non-json format
+</code></pre>
</div></div>
</li>
</ul></div>
<div class="paragraph"><p># nvme micron vs-nand-stats /dev/nvme0 -f normal</p></div>
<div class="listingblock">
<div class="content">
<pre><code>NVME</code></pre>
</div></div>
<div class="paragraph"><p>Part of the nvme-user suite</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-05-31 19:28:49 IST
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,54 @@
nvme-micron-smart-add-log(1)
============================
NAME
----
nvme-micron-smart-add-log - Retrieves NAND statistics (2200 model drives)
or Extended SMART information (OCP complaint models) of given micron device
SYNOPSIS
--------
[verse]
'nvme micron vs-smart-add-log' <device> -f <json|normal>
DESCRIPTION
-----------
This command prints NAND information (Total bytes written, Bad block count and
Erase failures etc) for the given micron device if its of 2200 model controller.
For OCP complaint controllers this command print extended SMART health data
along with NAND information (if available)
The <device> parameter is mandatory and may be either the NVMe
character device (ex: /dev/nvme0), or a namespace block device (ex:
/dev/nvme0n1).
The '-f' option controls the displayed output data format based on the option
value. If the option value is 'json' (which is enabled by default), output data
is printed in JSON format. If option value is 'normal' the output is displayed
in non-JSON format.
This will only work on Micron devices devices of model numbers 54XX and OCP
complaint controllers. Support for new devices may be added subsequently.
OPTIONS
-------
-f <json|normal> controls the format of displayed output.
EXAMPLES
--------
* Retrieve NAND/extended SMART data and display in json format
+
------------
# nvme micron vs-nand-stats /dev/nvme0
* Retrieve NAND/extended SMART data and display in non-json format
+
------------
# nvme micron vs-nand-stats /dev/nvme0 -f normal
------------
NVME
----
Part of the nvme-user suite

View file

@ -0,0 +1,104 @@
'\" t
.\" Title: nvme-primary-ctrl-caps
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/11/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-PRIMARY\-CTRL\" "1" "05/11/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-primary-ctrl-caps \- Send identify Primary Controller Caps, return result and structure
.SH "SYNOPSIS"
.sp
.nf
\fInvme primary\-ctrl\-caps\fR <device> [\-o <format> | \-\-output\-format=<format>]
.fi
.SH "DESCRIPTION"
.sp
For the NVMe device given, sends an identify primary Controller caps command and provides the result and returned structure\&.
.sp
The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&.
.sp
On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&.
.SH "OPTIONS"
.PP
\-o <format>, \-\-output\-format=<format>
.RS 4
Set the reporting format to
\fInormal\fR,
\fIjson\fR, or
\fIbinary\fR\&. Only one output format can be used at a time\&.
.RE
.PP
\-H, \-\-human\-readable
.RS 4
This option will parse and format many of the bit fields into human\-readable formats\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Get Primary Ctrl Caps of the device in default format
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme primary\-ctrl\-caps /dev/nvme0
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Has the program interpret the returned buffer and display the known fields in a human readable format:
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme primary\-ctrl\-caps /dev/nvme0 \-\-human\-readbale
# nvme primary\-ctrl\-caps /dev/nvme0 \-H
.fi
.if n \{\
.RE
.\}
.RE
.SH "NVME"
.sp
Part of the nvme\-user suite

View file

@ -0,0 +1,842 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-primary-ctrl-caps(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
/* Default font. */
body {
font-family: Georgia,serif;
}
/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
font-family: Arial,Helvetica,sans-serif;
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
h5 {
font-size: 1.0em;
}
div.sectionbody {
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
ul > li { color: #aaa; }
ul > li > * { color: black; }
.monospaced, code, pre {
font-family: "Courier New", Courier, monospace;
font-size: inherit;
color: navy;
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
font-weight: bold;
font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}
#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
#footer-text {
float: left;
padding-bottom: 0.5em;
}
#footer-badges {
float: right;
padding-bottom: 0.5em;
}
#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid #dddddd;
border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid #dddddd;
border-left: 5px solid #f0f0f0;
background: #f8f8f8;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #f0f0f0;
color: #888;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > pre.content {
font-family: inherit;
font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
div.colist td {
padding-right: 0.5em;
padding-bottom: 0.3em;
vertical-align: top;
}
div.colist td img {
margin-top: 0.3em;
}
@media print {
#footer-badges { display: none; }
}
#toc {
margin-bottom: 2.5em;
}
#toctitle {
color: #527bbd;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }
span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }
span.big { font-size: 2em; }
span.small { font-size: 0.6em; }
span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }
div.unbreakable { page-break-inside: avoid; }
/*
* xhtml11 specific
*
* */
div.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-weight: bold;
color: #527bbd;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
/*
* html5 specific
*
* */
table.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
thead, p.tableblock.header {
font-weight: bold;
color: #527bbd;
}
p.tableblock {
margin-top: 0;
}
table.tableblock {
border-width: 3px;
border-spacing: 0px;
border-style: solid;
border-color: #527bbd;
border-collapse: collapse;
}
th.tableblock, td.tableblock {
border-width: 1px;
padding: 4px;
border-style: solid;
border-color: #527bbd;
}
table.tableblock.frame-topbot {
border-left-style: hidden;
border-right-style: hidden;
}
table.tableblock.frame-sides {
border-top-style: hidden;
border-bottom-style: hidden;
}
table.tableblock.frame-none {
border-style: hidden;
}
th.tableblock.halign-left, td.tableblock.halign-left {
text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
th.tableblock.valign-top, td.tableblock.valign-top {
vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
vertical-align: bottom;
}
/*
* manpage specific
*
* */
body.manpage h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
body.manpage h2 {
border-style: none;
}
body.manpage div.sectionbody {
margin-left: 3em;
}
@media print {
body.manpage div#toc { display: none; }
}
</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////
/* Author: Mihai Bazon, September 2002
* http://students.infoiasi.ro/~mishoo
*
* Table Of Content generator
* Version: 0.4
*
* Feel free to use this script under the terms of the GNU General Public
* License, as long as you do not remove or alter this notice.
*/
/* modified by Troy D. Hanson, September 2006. License: GPL */
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
// toclevels = 1..4.
toc: function (toclevels) {
function getText(el) {
var text = "";
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
text += i.data;
else if (i.firstChild != null)
text += getText(i);
}
return text;
}
function TocEntry(el, text, toclevel) {
this.element = el;
this.text = text;
this.toclevel = toclevel;
}
function tocEntries(el, toclevels) {
var result = new Array;
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
if (!toc) {
return;
}
// Delete existing TOC entries in case we're reloading the TOC.
var tocEntriesToRemove = [];
var i;
for (i = 0; i < toc.childNodes.length; i++) {
var entry = toc.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div'
&& entry.getAttribute("class")
&& entry.getAttribute("class").match(/^toclevel/))
tocEntriesToRemove.push(entry);
}
for (i = 0; i < tocEntriesToRemove.length; i++) {
toc.removeChild(tocEntriesToRemove[i]);
}
// Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
// Delete existing footnote entries in case we're reloading the footnodes.
var i;
var noteholder = document.getElementById("footnotes");
if (!noteholder) {
return;
}
var entriesToRemove = [];
for (i = 0; i < noteholder.childNodes.length; i++) {
var entry = noteholder.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
entriesToRemove.push(entry);
}
for (i = 0; i < entriesToRemove.length; i++) {
noteholder.removeChild(entriesToRemove[i]);
}
// Rebuild footnote entries.
var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
var note = spans[i].getAttribute("data-note");
if (!note) {
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
spans[i].setAttribute("data-note", note);
}
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
},
install: function(toclevels) {
var timerId;
function reinstall() {
asciidoc.footnotes();
if (toclevels) {
asciidoc.toc(toclevels);
}
}
function reinstallAndRemoveTimer() {
clearInterval(timerId);
reinstall();
}
timerId = setInterval(reinstall, 500);
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
else
window.onload = reinstallAndRemoveTimer;
}
}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
nvme-primary-ctrl-caps(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>nvme-primary-ctrl-caps -
Send identify Primary Controller Caps, return result and structure
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme primary-ctrl-caps</em> &lt;device&gt; [-o &lt;format&gt; | --output-format=&lt;format&gt;]</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>For the NVMe device given, sends an identify primary Controller caps command and
provides the result and returned structure.</p></div>
<div class="paragraph"><p>The &lt;device&gt; parameter is mandatory and may be either the NVMe character
device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).</p></div>
<div class="paragraph"><p>On success, the structure may be returned in one of several ways depending
on the option flags; the structure may be parsed by the program or the
raw buffer may be printed to stdout.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
-o &lt;format&gt;
</dt>
<dt class="hdlist1">
--output-format=&lt;format&gt;
</dt>
<dd>
<p>
Set the reporting format to <em>normal</em>, <em>json</em>, or
<em>binary</em>. Only one output format can be used at a time.
</p>
</dd>
<dt class="hdlist1">
-H
</dt>
<dt class="hdlist1">
--human-readable
</dt>
<dd>
<p>
This option will parse and format many of the bit fields
into human-readable formats.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
Get Primary Ctrl Caps of the device in default format
</p>
<div class="listingblock">
<div class="content">
<pre><code># nvme primary-ctrl-caps /dev/nvme0</code></pre>
</div></div>
</li>
<li>
<p>
Has the program interpret the returned buffer and display the known
fields in a human readable format:
</p>
<div class="listingblock">
<div class="content">
<pre><code># nvme primary-ctrl-caps /dev/nvme0 --human-readbale
# nvme primary-ctrl-caps /dev/nvme0 -H</code></pre>
</div></div>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_nvme">NVME</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the nvme-user suite</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-05-11 12:31:04 IST
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,53 @@
nvme-primary-ctrl-caps(1)
=========================
NAME
----
nvme-primary-ctrl-caps - Send identify Primary Controller Caps, return result and structure
SYNOPSIS
--------
[verse]
'nvme primary-ctrl-caps' <device> [-o <format> | --output-format=<format>]
DESCRIPTION
-----------
For the NVMe device given, sends an identify primary Controller caps command and
provides the result and returned structure.
The <device> parameter is mandatory and may be either the NVMe character
device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
On success, the structure may be returned in one of several ways depending
on the option flags; the structure may be parsed by the program or the
raw buffer may be printed to stdout.
OPTIONS
-------
-o <format>::
--output-format=<format>::
Set the reporting format to 'normal', 'json', or
'binary'. Only one output format can be used at a time.
-H::
--human-readable::
This option will parse and format many of the bit fields
into human-readable formats.
EXAMPLES
--------
* Get Primary Ctrl Caps of the device in default format
+
------------
# nvme primary-ctrl-caps /dev/nvme0
------------
* Has the program interpret the returned buffer and display the known
fields in a human readable format:
+
------------
# nvme primary-ctrl-caps /dev/nvme0 --human-readbale
# nvme primary-ctrl-caps /dev/nvme0 -H
------------
NVME
----
Part of the nvme-user suite

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-read
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 07/09/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-READ" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-READ" "1" "07/09/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -50,6 +50,7 @@ nvme-read \- Send an NVMe Read command, provide results
[\-\-show\-command | \-v]
[\-\-dry\-run | \-w]
[\-\-latency | \-t]
[\-\-storage\-tag\-check<storage\-tag\-check> | \-C <storage\-tag\-check>]
.fi
.SH "DESCRIPTION"
.sp
@ -178,6 +179,11 @@ be set\&. Otherwise \-\-dry\-run option will be
.RS 4
Print out the latency the IOCTL took (in us)\&.
.RE
.PP
\-\-storage\-tag\-check=<storage\-tag\-check>, \-C <storage\-tag\-check>
.RS 4
This bit specifies the Storage Tag field shall be checked as part of end\-to\-end data protection processing\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.

View file

@ -766,7 +766,8 @@ nvme-read(1) Manual Page
[--dsm=&lt;dsm&gt; | -D &lt;dsm&gt;]
[--show-command | -v]
[--dry-run | -w]
[--latency | -t]</pre>
[--latency | -t]
[--storage-tag-check&lt;storage-tag-check&gt; | -C &lt;storage-tag-check&gt;]</pre>
<div class="attribution">
</div></div>
</div>
@ -1013,6 +1014,18 @@ metadata is passes.</p></td>
Print out the latency the IOCTL took (in us).
</p>
</dd>
<dt class="hdlist1">
--storage-tag-check=&lt;storage-tag-check&gt;
</dt>
<dt class="hdlist1">
-C &lt;storage-tag-check&gt;
</dt>
<dd>
<p>
This bit specifies the Storage Tag field shall be checked as part of end-to-end
data protection processing.
</p>
</dd>
</dl></div>
</div>
</div>
@ -1033,7 +1046,7 @@ metadata is passes.</p></td>
<div id="footer">
<div id="footer-text">
Last updated
2019-10-12 00:12:24 JST
2021-07-09 14:16:42 IST
</div>
</div>
</body>

View file

@ -26,6 +26,7 @@ SYNOPSIS
[--show-command | -v]
[--dry-run | -w]
[--latency | -t]
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]
DESCRIPTION
-----------
@ -128,6 +129,11 @@ metadata is passes.
--latency::
Print out the latency the IOCTL took (in us).
--storage-tag-check=<storage-tag-check>::
-C <storage-tag-check>::
This bit specifies the Storage Tag field shall be checked as part of end-to-end
data protection processing.
EXAMPLES
--------
No examples yet.

View file

@ -98,7 +98,7 @@ T}
.sp 1
.RE
.PP
\-a <rrega>, \-\-rrega=<rrega>
\-r <rrega>, \-\-rrega=<rrega>
.RS 4
Reservation Register Action: This field specifies the registration action that is performed by the command\&.
.TS

View file

@ -861,7 +861,7 @@ a power loss.</p></td>
</div>
</dd>
<dt class="hdlist1">
-a &lt;rrega&gt;
-r &lt;rrega&gt;
</dt>
<dt class="hdlist1">
--rrega=&lt;rrega&gt;

View file

@ -62,7 +62,7 @@ are cleared on a power on.
a power loss.
|=================
-a <rrega>::
-r <rrega>::
--rrega=<rrega>::
Reservation Register Action: This field specifies the registration
action that is performed by the command.

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-set-feature
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/16/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-SET\-FEATURE" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-SET\-FEATURE" "1" "05/16/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -34,6 +34,7 @@ nvme-set-feature \- Sets an NVMe feature, returns applicable results
.nf
\fInvme set\-feature\fR <device> [\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-feature\-id=<fid> | \-f <fid>] [\-\-value=<value> | \-v <value>]
[\-\-uuid\-index=<uuid\-index> | \-U <uuid_index>]
[\-\-data\-len=<data\-len> | \-l <data\-len>]
[\-\-data=<data\-file> | \-d <data\-file>]
[\-\-save| \-s]
@ -76,6 +77,11 @@ The value for command dword 11, the value you want to set the feature to\&.
.RS 4
Save the attribute so that it persists through all power states and resets\&.
.RE
.PP
\-U <uuid\-index>, \-\-uuid\-index=<uuid\-index>
.RS 4
UUID Index of the feature
.RE
.SH "EXAMPLES"
.sp
.RS 4
@ -118,6 +124,8 @@ Sets the host id to the ascii string\&.
.if n \{\
.RE
.\}
.sp
nvme set\-feature /dev/nvme0 \-f 0x81 \-l 8 \-U 0x1
.RE
.SH "NVME"
.sp

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-set-feature(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
@ -94,7 +95,9 @@ ul > li > * { color: black; }
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
@ -223,7 +226,7 @@ div.exampleblock > div.content {
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
@ -433,7 +436,7 @@ thead, p.table.header {
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overridden by CSS in most browsers. */
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
@ -748,6 +751,7 @@ nvme-set-feature(1) Manual Page
<div class="verseblock">
<pre class="content"><em>nvme set-feature</em> &lt;device&gt; [--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--feature-id=&lt;fid&gt; | -f &lt;fid&gt;] [--value=&lt;value&gt; | -v &lt;value&gt;]
[--uuid-index=&lt;uuid-index&gt; | -U &lt;uuid_index&gt;]
[--data-len=&lt;data-len&gt; | -l &lt;data-len&gt;]
[--data=&lt;data-file&gt; | -d &lt;data-file&gt;]
[--save| -s]</pre>
@ -844,6 +848,17 @@ device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).</p></di
Save the attribute so that it persists through all power states and resets.
</p>
</dd>
<dt class="hdlist1">
-U &lt;uuid-index&gt;
</dt>
<dt class="hdlist1">
--uuid-index=&lt;uuid-index&gt;
</dt>
<dd>
<p>
UUID Index of the feature
</p>
</dd>
</dl></div>
</div>
</div>
@ -868,6 +883,7 @@ Sets the host id to the ascii string.
<div class="content">
<pre><code># echo "abcdefgh" | nvme set-feature /dev/nvme0 -f 0x81 -l 8</code></pre>
</div></div>
<div class="paragraph"><p>nvme set-feature /dev/nvme0 -f 0x81 -l 8 -U 0x1</p></div>
</li>
</ul></div>
</div>
@ -882,7 +898,8 @@ Sets the host id to the ascii string.
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2017-02-27 10:11:58 EST
Last updated
2021-05-16 00:14:28 IST
</div>
</div>
</body>

View file

@ -10,6 +10,7 @@ SYNOPSIS
[verse]
'nvme set-feature' <device> [--namespace-id=<nsid> | -n <nsid>]
[--feature-id=<fid> | -f <fid>] [--value=<value> | -v <value>]
[--uuid-index=<uuid-index> | -U <uuid_index>]
[--data-len=<data-len> | -l <data-len>]
[--data=<data-file> | -d <data-file>]
[--save| -s]
@ -59,6 +60,10 @@ OPTIONS
--save::
Save the attribute so that it persists through all power states and resets.
-U <uuid-index>::
--uuid-index=<uuid-index>::
UUID Index of the feature
EXAMPLES
--------
* Sets the Power State (PS) to 1 in feature id 2:
@ -73,6 +78,8 @@ EXAMPLES
------------
# echo "abcdefgh" | nvme set-feature /dev/nvme0 -f 0x81 -l 8
------------
+
nvme set-feature /dev/nvme0 -f 0x81 -l 8 -U 0x1
NVME
----

151
Documentation/nvme-verify.1 Normal file
View file

@ -0,0 +1,151 @@
'\" t
.\" Title: nvme-verify
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 07/09/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-VERIFY" "1" "07/09/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-verify \- Send an NVMe Verify command, return results
.SH "SYNOPSIS"
.sp
.nf
\fInvme\-verify\fR <device> [\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-start\-block=<slba> | \-s <slba>]
[\-\-block\-count=<nlb> | \-c <nlb>]
[\-\-limited\-retry | \-l]
[\-\-force\-unit\-access | \-f]
[\-\-prinfo=<prinfo> | \-p <prinfo>]
[\-\-ref\-tag=<reftag> | \-r <reftag>]
[\-\-app\-tag\-mask=<appmask> | \-m <appmask>]
[\-\-app\-tag=<apptag> | \-a <apptag>]
[\-\-storage\-tag<storage\-tag> | \-S <storage\-tag>]
[\-\-storage\-tag\-check<storage\-tag\-check> | \-C <storage\-tag\-check>]
.fi
.SH "DESCRIPTION"
.sp
The Verify command verifies the integrity of the stored information by reading data and metadata\&.
.SH "OPTIONS"
.PP
\-\-namespace\-id=<nsid>, \-n <nsid>
.RS 4
Namespace ID use in the command\&.
.RE
.PP
\-\-start\-block=<slba>, \-s <slba>
.RS 4
Start block address\&.
.RE
.PP
\-\-block\-count=<nlb>, \-c <nlb>
.RS 4
Number of logical blocks to Verify\&.
.RE
.PP
\-\-limited\-retry, \-l
.RS 4
Sets the limited retry flag\&.
.RE
.PP
\-\-force\-unit\-access, \-f
.RS 4
Set the force\-unit access flag\&.
.RE
.PP
\-\-prinfo=<prinfo>, \-p <prinfo>
.RS 4
Protection Information field definition\&.
.TS
allbox tab(:);
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt.
T{
Bit
T}:T{
Description
T}
T{
3
T}:T{
PRACT: Protection Information Action\&. When set to 1, PI is stripped/inserted on read/write when the block format\(cqs metadata size is 8\&. When set to 0, metadata is passes\&.
T}
T{
2:0
T}:T{
PRCHK: Protection Information Check:
T}
T{
2
T}:T{
Set to 1 enables checking the guard tag
T}
T{
1
T}:T{
Set to 1 enables checking the application tag
T}
T{
0
T}:T{
Set to 1 enables checking the reference tag
T}
.TE
.sp 1
.RE
.PP
\-\-ref\-tag=<reftag>, \-r <reftag>
.RS 4
Optional reftag when used with protection information\&.
.RE
.PP
\-\-app\-tag\-mask=<appmask>, \-m <appmask>
.RS 4
Optional application tag mask when used with protection information\&.
.RE
.PP
\-\-app\-tag=<apptag>, \-a <apptag>
.RS 4
Optional application tag when used with protection information\&.
.RE
.PP
\-\-storage\-tag=<storage\-tag>, \-S <storage\-tag>
.RS 4
Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits\&.
.RE
.PP
\-\-storage\-tag\-check=<storage\-tag\-check>, \-C <storage\-tag\-check>
.RS 4
This bit specifies the Storage Tag field shall be checked as part of Verify operation\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.
.SH "NVME"
.sp
Part of the nvme\-user suite

View file

@ -0,0 +1,961 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>nvme-verify(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
/* Default font. */
body {
font-family: Georgia,serif;
}
/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
font-family: Arial,Helvetica,sans-serif;
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
h5 {
font-size: 1.0em;
}
div.sectionbody {
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
ul > li { color: #aaa; }
ul > li > * { color: black; }
.monospaced, code, pre {
font-family: "Courier New", Courier, monospace;
font-size: inherit;
color: navy;
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
font-weight: bold;
font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}
#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
#footer-text {
float: left;
padding-bottom: 0.5em;
}
#footer-badges {
float: right;
padding-bottom: 0.5em;
}
#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid #dddddd;
border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid #dddddd;
border-left: 5px solid #f0f0f0;
background: #f8f8f8;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #f0f0f0;
color: #888;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > pre.content {
font-family: inherit;
font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
div.colist td {
padding-right: 0.5em;
padding-bottom: 0.3em;
vertical-align: top;
}
div.colist td img {
margin-top: 0.3em;
}
@media print {
#footer-badges { display: none; }
}
#toc {
margin-bottom: 2.5em;
}
#toctitle {
color: #527bbd;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }
span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }
span.big { font-size: 2em; }
span.small { font-size: 0.6em; }
span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }
div.unbreakable { page-break-inside: avoid; }
/*
* xhtml11 specific
*
* */
div.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-weight: bold;
color: #527bbd;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
/*
* html5 specific
*
* */
table.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
thead, p.tableblock.header {
font-weight: bold;
color: #527bbd;
}
p.tableblock {
margin-top: 0;
}
table.tableblock {
border-width: 3px;
border-spacing: 0px;
border-style: solid;
border-color: #527bbd;
border-collapse: collapse;
}
th.tableblock, td.tableblock {
border-width: 1px;
padding: 4px;
border-style: solid;
border-color: #527bbd;
}
table.tableblock.frame-topbot {
border-left-style: hidden;
border-right-style: hidden;
}
table.tableblock.frame-sides {
border-top-style: hidden;
border-bottom-style: hidden;
}
table.tableblock.frame-none {
border-style: hidden;
}
th.tableblock.halign-left, td.tableblock.halign-left {
text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
th.tableblock.valign-top, td.tableblock.valign-top {
vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
vertical-align: bottom;
}
/*
* manpage specific
*
* */
body.manpage h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
body.manpage h2 {
border-style: none;
}
body.manpage div.sectionbody {
margin-left: 3em;
}
@media print {
body.manpage div#toc { display: none; }
}
</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = { // Namespace.
/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////
/* Author: Mihai Bazon, September 2002
* http://students.infoiasi.ro/~mishoo
*
* Table Of Content generator
* Version: 0.4
*
* Feel free to use this script under the terms of the GNU General Public
* License, as long as you do not remove or alter this notice.
*/
/* modified by Troy D. Hanson, September 2006. License: GPL */
/* modified by Stuart Rackham, 2006, 2009. License: GPL */
// toclevels = 1..4.
toc: function (toclevels) {
function getText(el) {
var text = "";
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
text += i.data;
else if (i.firstChild != null)
text += getText(i);
}
return text;
}
function TocEntry(el, text, toclevel) {
this.element = el;
this.text = text;
this.toclevel = toclevel;
}
function tocEntries(el, toclevels) {
var result = new Array;
var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
if (!toc) {
return;
}
// Delete existing TOC entries in case we're reloading the TOC.
var tocEntriesToRemove = [];
var i;
for (i = 0; i < toc.childNodes.length; i++) {
var entry = toc.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div'
&& entry.getAttribute("class")
&& entry.getAttribute("class").match(/^toclevel/))
tocEntriesToRemove.push(entry);
}
for (i = 0; i < tocEntriesToRemove.length; i++) {
toc.removeChild(tocEntriesToRemove[i]);
}
// Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
// Delete existing footnote entries in case we're reloading the footnodes.
var i;
var noteholder = document.getElementById("footnotes");
if (!noteholder) {
return;
}
var entriesToRemove = [];
for (i = 0; i < noteholder.childNodes.length; i++) {
var entry = noteholder.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
entriesToRemove.push(entry);
}
for (i = 0; i < entriesToRemove.length; i++) {
noteholder.removeChild(entriesToRemove[i]);
}
// Rebuild footnote entries.
var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
var note = spans[i].getAttribute("data-note");
if (!note) {
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
spans[i].setAttribute("data-note", note);
}
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
},
install: function(toclevels) {
var timerId;
function reinstall() {
asciidoc.footnotes();
if (toclevels) {
asciidoc.toc(toclevels);
}
}
function reinstallAndRemoveTimer() {
clearInterval(timerId);
reinstall();
}
timerId = setInterval(reinstall, 500);
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
else
window.onload = reinstallAndRemoveTimer;
}
}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
nvme-verify(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>nvme-verify -
Send an NVMe Verify command, return results
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>nvme-verify</em> &lt;device&gt; [--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--start-block=&lt;slba&gt; | -s &lt;slba&gt;]
[--block-count=&lt;nlb&gt; | -c &lt;nlb&gt;]
[--limited-retry | -l]
[--force-unit-access | -f]
[--prinfo=&lt;prinfo&gt; | -p &lt;prinfo&gt;]
[--ref-tag=&lt;reftag&gt; | -r &lt;reftag&gt;]
[--app-tag-mask=&lt;appmask&gt; | -m &lt;appmask&gt;]
[--app-tag=&lt;apptag&gt; | -a &lt;apptag&gt;]
[--storage-tag&lt;storage-tag&gt; | -S &lt;storage-tag&gt;]
[--storage-tag-check&lt;storage-tag-check&gt; | -C &lt;storage-tag-check&gt;]</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The Verify command verifies the integrity of the stored information by
reading data and metadata.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
--namespace-id=&lt;nsid&gt;
</dt>
<dt class="hdlist1">
-n &lt;nsid&gt;
</dt>
<dd>
<p>
Namespace ID use in the command.
</p>
</dd>
<dt class="hdlist1">
--start-block=&lt;slba&gt;
</dt>
<dt class="hdlist1">
-s &lt;slba&gt;
</dt>
<dd>
<p>
Start block address.
</p>
</dd>
<dt class="hdlist1">
--block-count=&lt;nlb&gt;
</dt>
<dt class="hdlist1">
-c &lt;nlb&gt;
</dt>
<dd>
<p>
Number of logical blocks to Verify.
</p>
</dd>
<dt class="hdlist1">
--limited-retry
</dt>
<dt class="hdlist1">
-l
</dt>
<dd>
<p>
Sets the limited retry flag.
</p>
</dd>
<dt class="hdlist1">
--force-unit-access
</dt>
<dt class="hdlist1">
-f
</dt>
<dd>
<p>
Set the force-unit access flag.
</p>
</dd>
<dt class="hdlist1">
--prinfo=&lt;prinfo&gt;
</dt>
<dt class="hdlist1">
-p &lt;prinfo&gt;
</dt>
<dd>
<p>
Protection Information field definition.
</p>
<div class="tableblock">
<table rules="all"
width="100%"
frame="border"
cellspacing="0" cellpadding="4">
<col width="50%" />
<col width="50%" />
<tbody>
<tr>
<td align="left" valign="top"><p class="table">Bit</p></td>
<td align="left" valign="top"><p class="table">Description</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">3</p></td>
<td align="left" valign="top"><p class="table">PRACT: Protection Information Action. When set to 1, PI is stripped/inserted
on read/write when the block format&#8217;s metadata size is 8. When set to 0,
metadata is passes.</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">2:0</p></td>
<td align="left" valign="top"><p class="table">PRCHK: Protection Information Check:</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">2</p></td>
<td align="left" valign="top"><p class="table">Set to 1 enables checking the guard tag</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">1</p></td>
<td align="left" valign="top"><p class="table">Set to 1 enables checking the application tag</p></td>
</tr>
<tr>
<td align="left" valign="top"><p class="table">0</p></td>
<td align="left" valign="top"><p class="table">Set to 1 enables checking the reference tag</p></td>
</tr>
</tbody>
</table>
</div>
</dd>
<dt class="hdlist1">
--ref-tag=&lt;reftag&gt;
</dt>
<dt class="hdlist1">
-r &lt;reftag&gt;
</dt>
<dd>
<p>
Optional reftag when used with protection information.
</p>
</dd>
<dt class="hdlist1">
--app-tag-mask=&lt;appmask&gt;
</dt>
<dt class="hdlist1">
-m &lt;appmask&gt;
</dt>
<dd>
<p>
Optional application tag mask when used with protection information.
</p>
</dd>
<dt class="hdlist1">
--app-tag=&lt;apptag&gt;
</dt>
<dt class="hdlist1">
-a &lt;apptag&gt;
</dt>
<dd>
<p>
Optional application tag when used with protection information.
</p>
</dd>
<dt class="hdlist1">
--storage-tag=&lt;storage-tag&gt;
</dt>
<dt class="hdlist1">
-S &lt;storage-tag&gt;
</dt>
<dd>
<p>
Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical
Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits.
</p>
</dd>
<dt class="hdlist1">
--storage-tag-check=&lt;storage-tag-check&gt;
</dt>
<dt class="hdlist1">
-C &lt;storage-tag-check&gt;
</dt>
<dd>
<p>
This bit specifies the Storage Tag field shall be checked as part of Verify operation.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="paragraph"><p>No examples yet.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_nvme">NVME</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the nvme-user suite</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
2021-07-09 13:43:04 IST
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,93 @@
nvme-verify(1)
==============
NAME
----
nvme-verify - Send an NVMe Verify command, return results
SYNOPSIS
--------
[verse]
'nvme-verify' <device> [--namespace-id=<nsid> | -n <nsid>]
[--start-block=<slba> | -s <slba>]
[--block-count=<nlb> | -c <nlb>]
[--limited-retry | -l]
[--force-unit-access | -f]
[--prinfo=<prinfo> | -p <prinfo>]
[--ref-tag=<reftag> | -r <reftag>]
[--app-tag-mask=<appmask> | -m <appmask>]
[--app-tag=<apptag> | -a <apptag>]
[--storage-tag<storage-tag> | -S <storage-tag>]
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]
DESCRIPTION
-----------
The Verify command verifies the integrity of the stored information by
reading data and metadata.
OPTIONS
-------
--namespace-id=<nsid>::
-n <nsid>::
Namespace ID use in the command.
--start-block=<slba>::
-s <slba>::
Start block address.
--block-count=<nlb>::
-c <nlb>::
Number of logical blocks to Verify.
--limited-retry::
-l::
Sets the limited retry flag.
--force-unit-access::
-f::
Set the force-unit access flag.
--prinfo=<prinfo>::
-p <prinfo>::
Protection Information field definition.
+
[]
|=================
|Bit|Description
|3|PRACT: Protection Information Action. When set to 1, PI is stripped/inserted
on read/write when the block format's metadata size is 8. When set to 0,
metadata is passes.
|2:0|PRCHK: Protection Information Check:
|2|Set to 1 enables checking the guard tag
|1|Set to 1 enables checking the application tag
|0|Set to 1 enables checking the reference tag
|=================
--ref-tag=<reftag>::
-r <reftag>::
Optional reftag when used with protection information.
--app-tag-mask=<appmask>::
-m <appmask>::
Optional application tag mask when used with protection information.
--app-tag=<apptag>::
-a <apptag>::
Optional application tag when used with protection information.
--storage-tag=<storage-tag>::
-S <storage-tag>::
Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical
Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits.
--storage-tag-check=<storage-tag-check>::
-C <storage-tag-check>::
This bit specifies the Storage Tag field shall be checked as part of Verify operation.
EXAMPLES
--------
No examples yet.
NVME
----
Part of the nvme-user suite

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-zeroes
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 07/09/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-ZEROES" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-ZEROES" "1" "07/09/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -42,6 +42,8 @@ nvme-write-zeroes \- Send an NVMe write zeroes command, return results
[\-\-limited\-retry | \-l]
[\-\-force\-unit\-access | \-f]
[\-\-namespace\-id=<nsid> | \-n <nsid>]
[\-\-storage\-tag<storage\-tag> | \-S <storage\-tag>]
[\-\-storage\-tag\-check<storage\-tag\-check> | \-C <storage\-tag\-check>]
.fi
.SH "DESCRIPTION"
.sp
@ -137,19 +139,19 @@ Set the force\-unit access flag\&.
.RS 4
Namespace ID use in the command\&.
.RE
.sp
EXAMPLES EXAMPLES
.sp
.if n \{\
.PP
\-\-storage\-tag=<storage\-tag>, \-n <storage\-tag>
.RS 4
.\}
.nf
No examples yet\&.
NVME
.fi
.if n \{\
Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits\&.
.RE
.\}
.PP
\-\-storage\-tag\-check=<storage\-tag\-check>, \-C <storage\-tag\-check>
.RS 4
This bit specifies the Storage Tag field shall be checked as part of end\-to\-end data protection processing\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.
.SH "NVME"
.sp
Part of the nvme\-user suite

View file

@ -758,7 +758,9 @@ nvme-zeroes(1) Manual Page
[--deac | -d]
[--limited-retry | -l]
[--force-unit-access | -f]
[--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]</pre>
[--namespace-id=&lt;nsid&gt; | -n &lt;nsid&gt;]
[--storage-tag&lt;storage-tag&gt; | -S &lt;storage-tag&gt;]
[--storage-tag-check&lt;storage-tag-check&gt; | -C &lt;storage-tag-check&gt;]</pre>
<div class="attribution">
</div></div>
</div>
@ -920,15 +922,42 @@ metadata is passes.</p></td>
Namespace ID use in the command.
</p>
</dd>
<dt class="hdlist1">
--storage-tag=&lt;storage-tag&gt;
</dt>
<dt class="hdlist1">
-n &lt;storage-tag&gt;
</dt>
<dd>
<p>
Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical
Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits.
</p>
</dd>
<dt class="hdlist1">
--storage-tag-check=&lt;storage-tag-check&gt;
</dt>
<dt class="hdlist1">
-C &lt;storage-tag-check&gt;
</dt>
<dd>
<p>
This bit specifies the Storage Tag field shall be checked as part of end-to-end
data protection processing.
</p>
</dd>
</dl></div>
<div class="paragraph"><p>EXAMPLES
EXAMPLES</p></div>
<div class="listingblock">
<div class="content">
<pre><code>No examples yet.
NVME</code></pre>
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="paragraph"><p>No examples yet.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_nvme">NVME</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the nvme-user suite</p></div>
</div>
</div>
@ -937,7 +966,7 @@ NVME</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
2019-09-18 00:00:58 JST
2021-07-09 13:42:09 IST
</div>
</div>
</body>

View file

@ -18,6 +18,8 @@ SYNOPSIS
[--limited-retry | -l]
[--force-unit-access | -f]
[--namespace-id=<nsid> | -n <nsid>]
[--storage-tag<storage-tag> | -S <storage-tag>]
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]
DESCRIPTION
-----------
@ -77,7 +79,16 @@ metadata is passes.
-n <nsid>::
Namespace ID use in the command.
EXAMPLES
--storage-tag=<storage-tag>::
-n <storage-tag>::
Variable Sized Expected Logical Block Storage Tag(ELBST) and Expected Logical
Block Reference Tag (ELBRT), CDW2 and CDW3 (00:47) bits.
--storage-tag-check=<storage-tag-check>::
-C <storage-tag-check>::
This bit specifies the Storage Tag field shall be checked as part of end-to-end
data protection processing.
EXAMPLES
--------
No examples yet.

View file

@ -1,13 +1,13 @@
'\" t
.\" Title: nvme-write
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 10/20/2020
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 07/09/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-WRITE" "1" "10/20/2020" "NVMe" "NVMe Manual"
.TH "NVME\-WRITE" "1" "07/09/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@ -50,6 +50,7 @@ nvme-write \- Send an NVMe write command, provide results
[\-\-show\-command | \-v]
[\-\-dry\-run | \-w]
[\-\-latency | \-t]
[\-\-storage\-tag\-check<storage\-tag\-check> | \-C <storage\-tag\-check>]
.fi
.SH "DESCRIPTION"
.sp
@ -188,6 +189,11 @@ be set\&. Otherwise \-\-dry\-run option will be
.RS 4
Print out the latency the IOCTL took (in us)\&.
.RE
.PP
\-\-storage\-tag\-check=<storage\-tag\-check>, \-C <storage\-tag\-check>
.RS 4
This bit specifies the Storage Tag field shall be checked as part of end\-to\-end data protection processing\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.

View file

@ -766,7 +766,8 @@ nvme-write(1) Manual Page
[--dsm=&lt;dsm&gt; | -D &lt;dsm&gt;]
[--show-command | -v]
[--dry-run | -w]
[--latency | -t]</pre>
[--latency | -t]
[--storage-tag-check&lt;storage-tag-check&gt; | -C &lt;storage-tag-check&gt;]</pre>
<div class="attribution">
</div></div>
</div>
@ -1035,6 +1036,18 @@ metadata is passes.</p></td>
Print out the latency the IOCTL took (in us).
</p>
</dd>
<dt class="hdlist1">
--storage-tag-check=&lt;storage-tag-check&gt;
</dt>
<dt class="hdlist1">
-C &lt;storage-tag-check&gt;
</dt>
<dd>
<p>
This bit specifies the Storage Tag field shall be checked as part of end-to-end
data protection processing.
</p>
</dd>
</dl></div>
</div>
</div>
@ -1055,7 +1068,7 @@ metadata is passes.</p></td>
<div id="footer">
<div id="footer-text">
Last updated
2018-11-29 13:31:13 GMT
2021-07-09 14:16:34 IST
</div>
</div>
</body>

View file

@ -26,6 +26,7 @@ SYNOPSIS
[--show-command | -v]
[--dry-run | -w]
[--latency | -t]
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]
DESCRIPTION
-----------
@ -136,6 +137,11 @@ metadata is passes.
--latency::
Print out the latency the IOCTL took (in us).
--storage-tag-check=<storage-tag-check>::
-C <storage-tag-check>::
This bit specifies the Storage Tag field shall be checked as part of end-to-end
data protection processing.
EXAMPLES
--------
No examples yet.

View file

@ -32,9 +32,10 @@ nvme-zns-close-zone \- Closes one or all zones
.SH "SYNOPSIS"
.sp
.nf
\fInvme zns close\-zone nvme zns id\-ctrl\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
\fInvme zns close\-zone\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
[\-\-timeout=<timeout> | \-t <timeout>]
.fi
.SH "DESCRIPTION"
.sp
@ -57,6 +58,11 @@ The starting LBA of the zone to close\&.
.RS 4
Select all zones for this action
.RE
.PP
\-t <timeout>, \-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4

View file

@ -32,9 +32,10 @@ nvme-zns-finish-zone \- Finishes one or all zones
.SH "SYNOPSIS"
.sp
.nf
\fInvme zns finish\-zone nvme zns id\-ctrl\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
\fInvme zns finish\-zone\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
[\-\-timeout=<timeout> | \-t <timeout>]
.fi
.SH "DESCRIPTION"
.sp
@ -57,6 +58,11 @@ The starting LBA of the zone to finish\&.
.RS 4
Select all zones for this action\&.
.RE
.PP
\-t <timeout>, \-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4

View file

@ -32,9 +32,10 @@ nvme-zns-offline-zone \- Offlines one or all zones
.SH "SYNOPSIS"
.sp
.nf
\fInvme zns offline\-zone nvme zns id\-ctrl\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
\fInvme zns offline\-zone\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
[\-\-timeout=<timeout> | \-t <timeout>]
.fi
.SH "DESCRIPTION"
.sp
@ -57,6 +58,11 @@ The starting LBA of the zone to offline\&.
.RS 4
Select all zones for this action
.RE
.PP
\-t <timeout>, \-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4

View file

@ -32,9 +32,10 @@ nvme-zns-open-zone \- Opens one or all zones
.SH "SYNOPSIS"
.sp
.nf
\fInvme zns open\-zone nvme zns id\-ctrl\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
\fInvme zns open\-zone\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
[\-\-timeout=<timeout> | \-t <timeout>]
.fi
.SH "DESCRIPTION"
.sp
@ -57,6 +58,11 @@ The starting LBA of the zone to open\&.
.RS 4
Select all zones for this action
.RE
.PP
\-t <timeout>, \-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4

View file

@ -33,8 +33,9 @@ nvme-zns-reset-zone \- Resets one or all zones
.sp
.nf
\fInvme zns reset\-zone\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
[\-\-start\-lba=<LBA> | \-s <LBA>]
[\-\-select\-all | \-a]
[\-\-timeout=<timeout> | \-t <timeout>]
.fi
.SH "DESCRIPTION"
.sp
@ -57,6 +58,11 @@ The starting LBA of the zone to reset\&.
.RS 4
Select all zones for this action
.RE
.PP
\-t <timeout>, \-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4

View file

@ -33,8 +33,9 @@ nvme-zns-set-zone-desc \- Set extended descriptor data for a zone
.sp
.nf
\fInvme zns setzone\-desc\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<IONUM>, \-s <IONUM>]
[\-data=<FILE>, \-d <FILE>]
[\-\-start\-lba=<IONUM>, \-s <IONUM>]
[\-data=<FILE>, \-d <FILE>]
[\-\-timeout=<timeout> | \-t <timeout>]
.fi
.SH "DESCRIPTION"
.sp
@ -55,6 +56,11 @@ The starting LBA of the zone to manage send\&.
.RS 4
Optional file for data (default stdin)
.RE
.PP
\-t <timeout>, \-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4

View file

@ -33,11 +33,12 @@ nvme-zns-zone-mgmt-send \- Zone Management Send command
.sp
.nf
\fInvme zns zone\-mgmt\-send\fR <device> [\-\-namespace\-id=<NUM> | \-n <NUM>]
[\-\-start\-lba=<IONUM>, \-s <IONUM>]
[\-\-select\-all, \-a]
[\-\-zsa=<NUM>, \-z <NUM>]
[\-\-data\-len=<IONUM>, \-l <IONUM>]
[\-data=<FILE>, \-d <FILE>]
[\-\-start\-lba=<IONUM>, \-s <IONUM>]
[\-\-select\-all, \-a]
[\-\-zsa=<NUM>, \-z <NUM>]
[\-\-data\-len=<IONUM>, \-l <IONUM>]
[\-data=<FILE>, \-d <FILE>]
[\-\-timeout=<timeout> | \-t <timeout>]
.fi
.SH "DESCRIPTION"
.sp
@ -78,6 +79,11 @@ Buffer length if data required
.RS 4
Optional file for data (default stdin)
.RE
.PP
\-t <timeout>, \-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4