Merging upstream version 1.15.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
14665a711e
commit
d975eb29d0
116 changed files with 6031 additions and 2284 deletions
|
@ -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
|
||||
|
|
|
@ -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=<prefill> | -p <prefill>]</pre>
|
||||
[--prefill=<prefill> | -p <prefill>]
|
||||
[--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>
|
||||
|
|
|
@ -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
|
||||
|
|
71
Documentation/nvme-capacity-mgmt.1
Normal file
71
Documentation/nvme-capacity-mgmt.1
Normal 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
|
845
Documentation/nvme-capacity-mgmt.html
Normal file
845
Documentation/nvme-capacity-mgmt.html
Normal 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">
|
||||
/*<+'])');
|
||||
// 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> <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>]</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 <device> 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 <operation>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--operation=<operation>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Operation to be performed by the controller
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-i <element-id>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--element-id=<element-id>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Value specific to the value of the Operation field.
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-l <cap-lower>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--cap-lower=<cap-lower>
|
||||
</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 <cap-upper>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--cap-upper=<cap-upper>
|
||||
</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>
|
54
Documentation/nvme-capacity-mgmt.txt
Normal file
54
Documentation/nvme-capacity-mgmt.txt
Normal 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
|
|
@ -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\&.
|
||||
|
|
|
@ -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=<dsm> | -D <dsm>]
|
||||
[--show-command | -v]
|
||||
[--dry-run | -w]
|
||||
[--latency | -t]</pre>
|
||||
[--latency | -t]
|
||||
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]</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=<storage-tag-check>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-C <storage-tag-check>
|
||||
</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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>::
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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> <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]
|
||||
|
@ -847,6 +851,17 @@ cellspacing="0" cellpadding="4">
|
|||
</div>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-U <uuid-index>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--uuid-index=<uuid-index>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
UUID Index of the feature
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-l <data-len>
|
||||
</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>
|
||||
|
|
|
@ -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
|
|||
|4–7|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
|
||||
|
|
134
Documentation/nvme-get-lba-status.1
Normal file
134
Documentation/nvme-get-lba-status.1
Normal 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
|
903
Documentation/nvme-get-lba-status.html
Normal file
903
Documentation/nvme-get-lba-status.html
Normal 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">
|
||||
/*<+'])');
|
||||
// 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> <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>]</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 <device> 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 <nsid>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--namespace-id=<nsid>
|
||||
</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 <slba>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--start-lba=<slba>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Starting LBA(SLBA) in 64-bit address of the first logical block addressed
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-m <max-dw>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--max-dw=<max-dw>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Maximum Number of Dwords(MNDW) specifies maximum number of dwords to return
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-a <action-type>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--action=<action-type>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Action Type(ATYPE) specifies the mechanism it uses in determining the LBA Status Descriptors.
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-l <range-len>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--range-len=<range-len>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Range Length(RL) specifies the length of the range of contiguous LBAs beginning at SLBA
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-t <timeout>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--timeout=<timeout>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Override default timeout value. In milliseconds.
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-o <format>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--output-format=<format>
|
||||
</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>
|
82
Documentation/nvme-get-lba-status.txt
Normal file
82
Documentation/nvme-get-lba-status.txt
Normal 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
|
|
@ -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
|
||||
|
|
|
@ -750,13 +750,16 @@ nvme-get-log(1) Manual Page
|
|||
<div class="sectionbody">
|
||||
<div class="verseblock">
|
||||
<pre class="content"><em>nvme get-log</em> <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]</pre>
|
||||
[--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]</pre>
|
||||
<div class="attribution">
|
||||
</div></div>
|
||||
</div>
|
||||
|
@ -864,6 +867,17 @@ program to parse.</p></div>
|
|||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-S <field>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--lsi=<field>
|
||||
</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 <command_set_identifier>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--csi=<command_set_identifier>
|
||||
</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>
|
||||
|
|
|
@ -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
|
||||
|
|
62
Documentation/nvme-id-domain.1
Normal file
62
Documentation/nvme-id-domain.1
Normal 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
|
819
Documentation/nvme-id-domain.html
Normal file
819
Documentation/nvme-id-domain.html
Normal 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">
|
||||
/*<+'])');
|
||||
// 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> <device> [--dom-id=<domian_id> | -d <domian_id>]
|
||||
[-o <fmt> | --output-format=<fmt>]</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 <device> 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 <domian_id>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--dom-id=<domian_id>
|
||||
</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 <format>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--output-format=<format>
|
||||
</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>
|
40
Documentation/nvme-id-domain.txt
Normal file
40
Documentation/nvme-id-domain.txt
Normal 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
|
|
@ -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
|
||||
|
|
|
@ -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> <device> [--controller-id=<cntid> | -c <cntid>]</pre>
|
||||
<pre class="content"><em>nvme id-iocs</em> <device> [--controller-id=<cntid> | -c <cntid>]
|
||||
[-o <fmt> | --output-format=<fmt>]</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 <format>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--output-format=<format>
|
||||
</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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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=<prefill> | -p <prefill>]</pre>
|
||||
[--prefill=<prefill> | -p <prefill>]
|
||||
[--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>
|
||||
|
|
|
@ -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
|
||||
--------
|
||||
|
||||
|
|
|
@ -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\&.
|
||||
|
|
|
@ -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> <device> [--cntid=<cntid> | -c <cntid>]
|
||||
[--namespace-id=<nsid> | -n <nsid>]
|
||||
[--namespace-id=<nsid> | -n <nsid>] [-o <fmt> | --output-format=<fmt>]
|
||||
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 <format>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--output-format=<format>
|
||||
</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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -751,7 +751,7 @@ nvme-id-ns(1) Manual Page
|
|||
<div class="verseblock">
|
||||
<pre class="content"><em>nvme list-ns</em> <device> [--namespace-id=<nsid> | -n <nsid>]
|
||||
[--csi=<command_set_identifier> | -y <command_set_identifier>]
|
||||
[--all | -a]</pre>
|
||||
[--all | -a] [--output-format=<fmt> | -o <fmt>]</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 <format>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--output-format=<format>
|
||||
</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>
|
||||
|
|
|
@ -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
|
||||
----
|
||||
|
|
87
Documentation/nvme-micron-smart-add-log.1
Normal file
87
Documentation/nvme-micron-smart-add-log.1
Normal 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
|
815
Documentation/nvme-micron-smart-add-log.html
Normal file
815
Documentation/nvme-micron-smart-add-log.html
Normal 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">
|
||||
/*<+'])');
|
||||
// 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> <device> -f <json|normal></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 <device> 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 <json|normal> 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>
|
54
Documentation/nvme-micron-smart-add-log.txt
Normal file
54
Documentation/nvme-micron-smart-add-log.txt
Normal 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
|
104
Documentation/nvme-primary-ctrl-caps.1
Normal file
104
Documentation/nvme-primary-ctrl-caps.1
Normal 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
|
842
Documentation/nvme-primary-ctrl-caps.html
Normal file
842
Documentation/nvme-primary-ctrl-caps.html
Normal 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">
|
||||
/*<+'])');
|
||||
// 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> <device> [-o <format> | --output-format=<format>]</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 <device> 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 <format>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--output-format=<format>
|
||||
</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>
|
53
Documentation/nvme-primary-ctrl-caps.txt
Normal file
53
Documentation/nvme-primary-ctrl-caps.txt
Normal 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
|
|
@ -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\&.
|
||||
|
|
|
@ -766,7 +766,8 @@ nvme-read(1) Manual Page
|
|||
[--dsm=<dsm> | -D <dsm>]
|
||||
[--show-command | -v]
|
||||
[--dry-run | -w]
|
||||
[--latency | -t]</pre>
|
||||
[--latency | -t]
|
||||
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]</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=<storage-tag-check>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-C <storage-tag-check>
|
||||
</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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -861,7 +861,7 @@ a power loss.</p></td>
|
|||
</div>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
-a <rrega>
|
||||
-r <rrega>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--rrega=<rrega>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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> <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]</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 <uuid-index>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
--uuid-index=<uuid-index>
|
||||
</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>
|
||||
|
|
|
@ -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
151
Documentation/nvme-verify.1
Normal 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
|
961
Documentation/nvme-verify.html
Normal file
961
Documentation/nvme-verify.html
Normal 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">
|
||||
/*<+'])');
|
||||
// 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> <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>]</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=<nsid>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-n <nsid>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Namespace ID use in the command.
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
--start-block=<slba>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-s <slba>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Start block address.
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
--block-count=<nlb>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-c <nlb>
|
||||
</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=<prinfo>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-p <prinfo>
|
||||
</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’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=<reftag>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-r <reftag>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Optional reftag when used with protection information.
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
--app-tag-mask=<appmask>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-m <appmask>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Optional application tag mask when used with protection information.
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
--app-tag=<apptag>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-a <apptag>
|
||||
</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Optional application tag when used with protection information.
|
||||
</p>
|
||||
</dd>
|
||||
<dt class="hdlist1">
|
||||
--storage-tag=<storage-tag>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-S <storage-tag>
|
||||
</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=<storage-tag-check>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-C <storage-tag-check>
|
||||
</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>
|
93
Documentation/nvme-verify.txt
Normal file
93
Documentation/nvme-verify.txt
Normal 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
|
|
@ -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
|
||||
|
|
|
@ -758,7 +758,9 @@ nvme-zeroes(1) Manual Page
|
|||
[--deac | -d]
|
||||
[--limited-retry | -l]
|
||||
[--force-unit-access | -f]
|
||||
[--namespace-id=<nsid> | -n <nsid>]</pre>
|
||||
[--namespace-id=<nsid> | -n <nsid>]
|
||||
[--storage-tag<storage-tag> | -S <storage-tag>]
|
||||
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]</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=<storage-tag>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-n <storage-tag>
|
||||
</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=<storage-tag-check>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-C <storage-tag-check>
|
||||
</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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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\&.
|
||||
|
|
|
@ -766,7 +766,8 @@ nvme-write(1) Manual Page
|
|||
[--dsm=<dsm> | -D <dsm>]
|
||||
[--show-command | -v]
|
||||
[--dry-run | -w]
|
||||
[--latency | -t]</pre>
|
||||
[--latency | -t]
|
||||
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]</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=<storage-tag-check>
|
||||
</dt>
|
||||
<dt class="hdlist1">
|
||||
-C <storage-tag-check>
|
||||
</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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue