Blame Documentation/nvme-wdc-smart-add-log.html

Packit Service b7b338
Packit Service b7b338
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Packit Service b7b338
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
Packit Service b7b338
<head>
Packit Service b7b338
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
Packit Service b7b338
<meta name="generator" content="AsciiDoc 8.6.9" />
Packit Service b7b338
<title>nvme-wdc-smart-add-log(1)</title>
Packit Service b7b338
<style type="text/css">
Packit Service b7b338
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
Packit Service b7b338

Packit Service b7b338
/* Default font. */
Packit Service b7b338
body {
Packit Service b7b338
  font-family: Georgia,serif;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
/* Title font. */
Packit Service b7b338
h1, h2, h3, h4, h5, h6,
Packit Service b7b338
div.title, caption.title,
Packit Service b7b338
thead, p.table.header,
Packit Service b7b338
#toctitle,
Packit Service b7b338
#author, #revnumber, #revdate, #revremark,
Packit Service b7b338
#footer {
Packit Service b7b338
  font-family: Arial,Helvetica,sans-serif;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
body {
Packit Service b7b338
  margin: 1em 5% 1em 5%;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
a {
Packit Service b7b338
  color: blue;
Packit Service b7b338
  text-decoration: underline;
Packit Service b7b338
}
Packit Service b7b338
a:visited {
Packit Service b7b338
  color: fuchsia;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
em {
Packit Service b7b338
  font-style: italic;
Packit Service b7b338
  color: navy;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
strong {
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
  color: #083194;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
h1, h2, h3, h4, h5, h6 {
Packit Service b7b338
  color: #527bbd;
Packit Service b7b338
  margin-top: 1.2em;
Packit Service b7b338
  margin-bottom: 0.5em;
Packit Service b7b338
  line-height: 1.3;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
h1, h2, h3 {
Packit Service b7b338
  border-bottom: 2px solid silver;
Packit Service b7b338
}
Packit Service b7b338
h2 {
Packit Service b7b338
  padding-top: 0.5em;
Packit Service b7b338
}
Packit Service b7b338
h3 {
Packit Service b7b338
  float: left;
Packit Service b7b338
}
Packit Service b7b338
h3 + * {
Packit Service b7b338
  clear: left;
Packit Service b7b338
}
Packit Service b7b338
h5 {
Packit Service b7b338
  font-size: 1.0em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.sectionbody {
Packit Service b7b338
  margin-left: 0;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
hr {
Packit Service b7b338
  border: 1px solid silver;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
p {
Packit Service b7b338
  margin-top: 0.5em;
Packit Service b7b338
  margin-bottom: 0.5em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
ul, ol, li > p {
Packit Service b7b338
  margin-top: 0;
Packit Service b7b338
}
Packit Service b7b338
ul > li     { color: #aaa; }
Packit Service b7b338
ul > li > * { color: black; }
Packit Service b7b338

Packit Service b7b338
.monospaced, code, pre {
Packit Service b7b338
  font-family: "Courier New", Courier, monospace;
Packit Service b7b338
  font-size: inherit;
Packit Service b7b338
  color: navy;
Packit Service b7b338
  padding: 0;
Packit Service b7b338
  margin: 0;
Packit Service b7b338
}
Packit Service b7b338
pre {
Packit Service b7b338
  white-space: pre-wrap;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
#author {
Packit Service b7b338
  color: #527bbd;
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
  font-size: 1.1em;
Packit Service b7b338
}
Packit Service b7b338
#email {
Packit Service b7b338
}
Packit Service b7b338
#revnumber, #revdate, #revremark {
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
#footer {
Packit Service b7b338
  font-size: small;
Packit Service b7b338
  border-top: 2px solid silver;
Packit Service b7b338
  padding-top: 0.5em;
Packit Service b7b338
  margin-top: 4.0em;
Packit Service b7b338
}
Packit Service b7b338
#footer-text {
Packit Service b7b338
  float: left;
Packit Service b7b338
  padding-bottom: 0.5em;
Packit Service b7b338
}
Packit Service b7b338
#footer-badges {
Packit Service b7b338
  float: right;
Packit Service b7b338
  padding-bottom: 0.5em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
#preamble {
Packit Service b7b338
  margin-top: 1.5em;
Packit Service b7b338
  margin-bottom: 1.5em;
Packit Service b7b338
}
Packit Service b7b338
div.imageblock, div.exampleblock, div.verseblock,
Packit Service b7b338
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
Packit Service b7b338
div.admonitionblock {
Packit Service b7b338
  margin-top: 1.0em;
Packit Service b7b338
  margin-bottom: 1.5em;
Packit Service b7b338
}
Packit Service b7b338
div.admonitionblock {
Packit Service b7b338
  margin-top: 2.0em;
Packit Service b7b338
  margin-bottom: 2.0em;
Packit Service b7b338
  margin-right: 10%;
Packit Service b7b338
  color: #606060;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.content { /* Block element content. */
Packit Service b7b338
  padding: 0;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
/* Block element titles. */
Packit Service b7b338
div.title, caption.title {
Packit Service b7b338
  color: #527bbd;
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
  text-align: left;
Packit Service b7b338
  margin-top: 1.0em;
Packit Service b7b338
  margin-bottom: 0.5em;
Packit Service b7b338
}
Packit Service b7b338
div.title + * {
Packit Service b7b338
  margin-top: 0;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
td div.title:first-child {
Packit Service b7b338
  margin-top: 0.0em;
Packit Service b7b338
}
Packit Service b7b338
div.content div.title:first-child {
Packit Service b7b338
  margin-top: 0.0em;
Packit Service b7b338
}
Packit Service b7b338
div.content + div.title {
Packit Service b7b338
  margin-top: 0.0em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.sidebarblock > div.content {
Packit Service b7b338
  background: #ffffee;
Packit Service b7b338
  border: 1px solid #dddddd;
Packit Service b7b338
  border-left: 4px solid #f0f0f0;
Packit Service b7b338
  padding: 0.5em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.listingblock > div.content {
Packit Service b7b338
  border: 1px solid #dddddd;
Packit Service b7b338
  border-left: 5px solid #f0f0f0;
Packit Service b7b338
  background: #f8f8f8;
Packit Service b7b338
  padding: 0.5em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.quoteblock, div.verseblock {
Packit Service b7b338
  padding-left: 1.0em;
Packit Service b7b338
  margin-left: 1.0em;
Packit Service b7b338
  margin-right: 10%;
Packit Service b7b338
  border-left: 5px solid #f0f0f0;
Packit Service b7b338
  color: #888;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.quoteblock > div.attribution {
Packit Service b7b338
  padding-top: 0.5em;
Packit Service b7b338
  text-align: right;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.verseblock > pre.content {
Packit Service b7b338
  font-family: inherit;
Packit Service b7b338
  font-size: inherit;
Packit Service b7b338
}
Packit Service b7b338
div.verseblock > div.attribution {
Packit Service b7b338
  padding-top: 0.75em;
Packit Service b7b338
  text-align: left;
Packit Service b7b338
}
Packit Service b7b338
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
Packit Service b7b338
div.verseblock + div.attribution {
Packit Service b7b338
  text-align: left;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.admonitionblock .icon {
Packit Service b7b338
  vertical-align: top;
Packit Service b7b338
  font-size: 1.1em;
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
  text-decoration: underline;
Packit Service b7b338
  color: #527bbd;
Packit Service b7b338
  padding-right: 0.5em;
Packit Service b7b338
}
Packit Service b7b338
div.admonitionblock td.content {
Packit Service b7b338
  padding-left: 0.5em;
Packit Service b7b338
  border-left: 3px solid #dddddd;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.exampleblock > div.content {
Packit Service b7b338
  border-left: 3px solid #dddddd;
Packit Service b7b338
  padding-left: 0.5em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.imageblock div.content { padding-left: 0; }
Packit Service b7b338
span.image img { border-style: none; vertical-align: text-bottom; }
Packit Service b7b338
a.image:visited { color: white; }
Packit Service b7b338

Packit Service b7b338
dl {
Packit Service b7b338
  margin-top: 0.8em;
Packit Service b7b338
  margin-bottom: 0.8em;
Packit Service b7b338
}
Packit Service b7b338
dt {
Packit Service b7b338
  margin-top: 0.5em;
Packit Service b7b338
  margin-bottom: 0;
Packit Service b7b338
  font-style: normal;
Packit Service b7b338
  color: navy;
Packit Service b7b338
}
Packit Service b7b338
dd > *:first-child {
Packit Service b7b338
  margin-top: 0.1em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
ul, ol {
Packit Service b7b338
    list-style-position: outside;
Packit Service b7b338
}
Packit Service b7b338
ol.arabic {
Packit Service b7b338
  list-style-type: decimal;
Packit Service b7b338
}
Packit Service b7b338
ol.loweralpha {
Packit Service b7b338
  list-style-type: lower-alpha;
Packit Service b7b338
}
Packit Service b7b338
ol.upperalpha {
Packit Service b7b338
  list-style-type: upper-alpha;
Packit Service b7b338
}
Packit Service b7b338
ol.lowerroman {
Packit Service b7b338
  list-style-type: lower-roman;
Packit Service b7b338
}
Packit Service b7b338
ol.upperroman {
Packit Service b7b338
  list-style-type: upper-roman;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.compact ul, div.compact ol,
Packit Service b7b338
div.compact p, div.compact p,
Packit Service b7b338
div.compact div, div.compact div {
Packit Service b7b338
  margin-top: 0.1em;
Packit Service b7b338
  margin-bottom: 0.1em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
tfoot {
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
}
Packit Service b7b338
td > div.verse {
Packit Service b7b338
  white-space: pre;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.hdlist {
Packit Service b7b338
  margin-top: 0.8em;
Packit Service b7b338
  margin-bottom: 0.8em;
Packit Service b7b338
}
Packit Service b7b338
div.hdlist tr {
Packit Service b7b338
  padding-bottom: 15px;
Packit Service b7b338
}
Packit Service b7b338
dt.hdlist1.strong, td.hdlist1.strong {
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
}
Packit Service b7b338
td.hdlist1 {
Packit Service b7b338
  vertical-align: top;
Packit Service b7b338
  font-style: normal;
Packit Service b7b338
  padding-right: 0.8em;
Packit Service b7b338
  color: navy;
Packit Service b7b338
}
Packit Service b7b338
td.hdlist2 {
Packit Service b7b338
  vertical-align: top;
Packit Service b7b338
}
Packit Service b7b338
div.hdlist.compact tr {
Packit Service b7b338
  margin: 0;
Packit Service b7b338
  padding-bottom: 0;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
.comment {
Packit Service b7b338
  background: yellow;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
.footnote, .footnoteref {
Packit Service b7b338
  font-size: 0.8em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
span.footnote, span.footnoteref {
Packit Service b7b338
  vertical-align: super;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
#footnotes {
Packit Service b7b338
  margin: 20px 0 20px 0;
Packit Service b7b338
  padding: 7px 0 0 0;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
#footnotes div.footnote {
Packit Service b7b338
  margin: 0 0 5px 0;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
#footnotes hr {
Packit Service b7b338
  border: none;
Packit Service b7b338
  border-top: 1px solid silver;
Packit Service b7b338
  height: 1px;
Packit Service b7b338
  text-align: left;
Packit Service b7b338
  margin-left: 0;
Packit Service b7b338
  width: 20%;
Packit Service b7b338
  min-width: 100px;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.colist td {
Packit Service b7b338
  padding-right: 0.5em;
Packit Service b7b338
  padding-bottom: 0.3em;
Packit Service b7b338
  vertical-align: top;
Packit Service b7b338
}
Packit Service b7b338
div.colist td img {
Packit Service b7b338
  margin-top: 0.3em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
@media print {
Packit Service b7b338
  #footer-badges { display: none; }
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
#toc {
Packit Service b7b338
  margin-bottom: 2.5em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
#toctitle {
Packit Service b7b338
  color: #527bbd;
Packit Service b7b338
  font-size: 1.1em;
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
  margin-top: 1.0em;
Packit Service b7b338
  margin-bottom: 0.1em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
Packit Service b7b338
  margin-top: 0;
Packit Service b7b338
  margin-bottom: 0;
Packit Service b7b338
}
Packit Service b7b338
div.toclevel2 {
Packit Service b7b338
  margin-left: 2em;
Packit Service b7b338
  font-size: 0.9em;
Packit Service b7b338
}
Packit Service b7b338
div.toclevel3 {
Packit Service b7b338
  margin-left: 4em;
Packit Service b7b338
  font-size: 0.9em;
Packit Service b7b338
}
Packit Service b7b338
div.toclevel4 {
Packit Service b7b338
  margin-left: 6em;
Packit Service b7b338
  font-size: 0.9em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
span.aqua { color: aqua; }
Packit Service b7b338
span.black { color: black; }
Packit Service b7b338
span.blue { color: blue; }
Packit Service b7b338
span.fuchsia { color: fuchsia; }
Packit Service b7b338
span.gray { color: gray; }
Packit Service b7b338
span.green { color: green; }
Packit Service b7b338
span.lime { color: lime; }
Packit Service b7b338
span.maroon { color: maroon; }
Packit Service b7b338
span.navy { color: navy; }
Packit Service b7b338
span.olive { color: olive; }
Packit Service b7b338
span.purple { color: purple; }
Packit Service b7b338
span.red { color: red; }
Packit Service b7b338
span.silver { color: silver; }
Packit Service b7b338
span.teal { color: teal; }
Packit Service b7b338
span.white { color: white; }
Packit Service b7b338
span.yellow { color: yellow; }
Packit Service b7b338

Packit Service b7b338
span.aqua-background { background: aqua; }
Packit Service b7b338
span.black-background { background: black; }
Packit Service b7b338
span.blue-background { background: blue; }
Packit Service b7b338
span.fuchsia-background { background: fuchsia; }
Packit Service b7b338
span.gray-background { background: gray; }
Packit Service b7b338
span.green-background { background: green; }
Packit Service b7b338
span.lime-background { background: lime; }
Packit Service b7b338
span.maroon-background { background: maroon; }
Packit Service b7b338
span.navy-background { background: navy; }
Packit Service b7b338
span.olive-background { background: olive; }
Packit Service b7b338
span.purple-background { background: purple; }
Packit Service b7b338
span.red-background { background: red; }
Packit Service b7b338
span.silver-background { background: silver; }
Packit Service b7b338
span.teal-background { background: teal; }
Packit Service b7b338
span.white-background { background: white; }
Packit Service b7b338
span.yellow-background { background: yellow; }
Packit Service b7b338

Packit Service b7b338
span.big { font-size: 2em; }
Packit Service b7b338
span.small { font-size: 0.6em; }
Packit Service b7b338

Packit Service b7b338
span.underline { text-decoration: underline; }
Packit Service b7b338
span.overline { text-decoration: overline; }
Packit Service b7b338
span.line-through { text-decoration: line-through; }
Packit Service b7b338

Packit Service b7b338
div.unbreakable { page-break-inside: avoid; }
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
/*
Packit Service b7b338
 * xhtml11 specific
Packit Service b7b338
 *
Packit Service b7b338
 * */
Packit Service b7b338

Packit Service b7b338
div.tableblock {
Packit Service b7b338
  margin-top: 1.0em;
Packit Service b7b338
  margin-bottom: 1.5em;
Packit Service b7b338
}
Packit Service b7b338
div.tableblock > table {
Packit Service b7b338
  border: 3px solid #527bbd;
Packit Service b7b338
}
Packit Service b7b338
thead, p.table.header {
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
  color: #527bbd;
Packit Service b7b338
}
Packit Service b7b338
p.table {
Packit Service b7b338
  margin-top: 0;
Packit Service b7b338
}
Packit Service b7b338
/* Because the table frame attribute is overridden by CSS in most browsers. */
Packit Service b7b338
div.tableblock > table[frame="void"] {
Packit Service b7b338
  border-style: none;
Packit Service b7b338
}
Packit Service b7b338
div.tableblock > table[frame="hsides"] {
Packit Service b7b338
  border-left-style: none;
Packit Service b7b338
  border-right-style: none;
Packit Service b7b338
}
Packit Service b7b338
div.tableblock > table[frame="vsides"] {
Packit Service b7b338
  border-top-style: none;
Packit Service b7b338
  border-bottom-style: none;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
/*
Packit Service b7b338
 * html5 specific
Packit Service b7b338
 *
Packit Service b7b338
 * */
Packit Service b7b338

Packit Service b7b338
table.tableblock {
Packit Service b7b338
  margin-top: 1.0em;
Packit Service b7b338
  margin-bottom: 1.5em;
Packit Service b7b338
}
Packit Service b7b338
thead, p.tableblock.header {
Packit Service b7b338
  font-weight: bold;
Packit Service b7b338
  color: #527bbd;
Packit Service b7b338
}
Packit Service b7b338
p.tableblock {
Packit Service b7b338
  margin-top: 0;
Packit Service b7b338
}
Packit Service b7b338
table.tableblock {
Packit Service b7b338
  border-width: 3px;
Packit Service b7b338
  border-spacing: 0px;
Packit Service b7b338
  border-style: solid;
Packit Service b7b338
  border-color: #527bbd;
Packit Service b7b338
  border-collapse: collapse;
Packit Service b7b338
}
Packit Service b7b338
th.tableblock, td.tableblock {
Packit Service b7b338
  border-width: 1px;
Packit Service b7b338
  padding: 4px;
Packit Service b7b338
  border-style: solid;
Packit Service b7b338
  border-color: #527bbd;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
table.tableblock.frame-topbot {
Packit Service b7b338
  border-left-style: hidden;
Packit Service b7b338
  border-right-style: hidden;
Packit Service b7b338
}
Packit Service b7b338
table.tableblock.frame-sides {
Packit Service b7b338
  border-top-style: hidden;
Packit Service b7b338
  border-bottom-style: hidden;
Packit Service b7b338
}
Packit Service b7b338
table.tableblock.frame-none {
Packit Service b7b338
  border-style: hidden;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
th.tableblock.halign-left, td.tableblock.halign-left {
Packit Service b7b338
  text-align: left;
Packit Service b7b338
}
Packit Service b7b338
th.tableblock.halign-center, td.tableblock.halign-center {
Packit Service b7b338
  text-align: center;
Packit Service b7b338
}
Packit Service b7b338
th.tableblock.halign-right, td.tableblock.halign-right {
Packit Service b7b338
  text-align: right;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
th.tableblock.valign-top, td.tableblock.valign-top {
Packit Service b7b338
  vertical-align: top;
Packit Service b7b338
}
Packit Service b7b338
th.tableblock.valign-middle, td.tableblock.valign-middle {
Packit Service b7b338
  vertical-align: middle;
Packit Service b7b338
}
Packit Service b7b338
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
Packit Service b7b338
  vertical-align: bottom;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
/*
Packit Service b7b338
 * manpage specific
Packit Service b7b338
 *
Packit Service b7b338
 * */
Packit Service b7b338

Packit Service b7b338
body.manpage h1 {
Packit Service b7b338
  padding-top: 0.5em;
Packit Service b7b338
  padding-bottom: 0.5em;
Packit Service b7b338
  border-top: 2px solid silver;
Packit Service b7b338
  border-bottom: 2px solid silver;
Packit Service b7b338
}
Packit Service b7b338
body.manpage h2 {
Packit Service b7b338
  border-style: none;
Packit Service b7b338
}
Packit Service b7b338
body.manpage div.sectionbody {
Packit Service b7b338
  margin-left: 3em;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
@media print {
Packit Service b7b338
  body.manpage div#toc { display: none; }
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
</style>
Packit Service b7b338
<script type="text/javascript">
Packit Service b7b338
/*
Packit Service b7b338
var asciidoc = {  // Namespace.
Packit Service b7b338

Packit Service b7b338
/////////////////////////////////////////////////////////////////////
Packit Service b7b338
// Table Of Contents generator
Packit Service b7b338
/////////////////////////////////////////////////////////////////////
Packit Service b7b338

Packit Service b7b338
/* Author: Mihai Bazon, September 2002
Packit Service b7b338
 * http://students.infoiasi.ro/~mishoo
Packit Service b7b338
 *
Packit Service b7b338
 * Table Of Content generator
Packit Service b7b338
 * Version: 0.4
Packit Service b7b338
 *
Packit Service b7b338
 * Feel free to use this script under the terms of the GNU General Public
Packit Service b7b338
 * License, as long as you do not remove or alter this notice.
Packit Service b7b338
 */
Packit Service b7b338

Packit Service b7b338
 /* modified by Troy D. Hanson, September 2006. License: GPL */
Packit Service b7b338
 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
Packit Service b7b338

Packit Service b7b338
// toclevels = 1..4.
Packit Service b7b338
toc: function (toclevels) {
Packit Service b7b338

Packit Service b7b338
  function getText(el) {
Packit Service b7b338
    var text = "";
Packit Service b7b338
    for (var i = el.firstChild; i != null; i = i.nextSibling) {
Packit Service b7b338
      if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
Packit Service b7b338
        text += i.data;
Packit Service b7b338
      else if (i.firstChild != null)
Packit Service b7b338
        text += getText(i);
Packit Service b7b338
    }
Packit Service b7b338
    return text;
Packit Service b7b338
  }
Packit Service b7b338

Packit Service b7b338
  function TocEntry(el, text, toclevel) {
Packit Service b7b338
    this.element = el;
Packit Service b7b338
    this.text = text;
Packit Service b7b338
    this.toclevel = toclevel;
Packit Service b7b338
  }
Packit Service b7b338

Packit Service b7b338
  function tocEntries(el, toclevels) {
Packit Service b7b338
    var result = new Array;
Packit Service b7b338
    var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
Packit Service b7b338
    // Function that scans the DOM tree for header elements (the DOM2
Packit Service b7b338
    // nodeIterator API would be a better technique but not supported by all
Packit Service b7b338
    // browsers).
Packit Service b7b338
    var iterate = function (el) {
Packit Service b7b338
      for (var i = el.firstChild; i != null; i = i.nextSibling) {
Packit Service b7b338
        if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
Packit Service b7b338
          var mo = re.exec(i.tagName);
Packit Service b7b338
          if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
Packit Service b7b338
            result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
Packit Service b7b338
          }
Packit Service b7b338
          iterate(i);
Packit Service b7b338
        }
Packit Service b7b338
      }
Packit Service b7b338
    }
Packit Service b7b338
    iterate(el);
Packit Service b7b338
    return result;
Packit Service b7b338
  }
Packit Service b7b338

Packit Service b7b338
  var toc = document.getElementById("toc");
Packit Service b7b338
  if (!toc) {
Packit Service b7b338
    return;
Packit Service b7b338
  }
Packit Service b7b338

Packit Service b7b338
  // Delete existing TOC entries in case we're reloading the TOC.
Packit Service b7b338
  var tocEntriesToRemove = [];
Packit Service b7b338
  var i;
Packit Service b7b338
  for (i = 0; i < toc.childNodes.length; i++) {
Packit Service b7b338
    var entry = toc.childNodes[i];
Packit Service b7b338
    if (entry.nodeName.toLowerCase() == 'div'
Packit Service b7b338
     && entry.getAttribute("class")
Packit Service b7b338
     && entry.getAttribute("class").match(/^toclevel/))
Packit Service b7b338
      tocEntriesToRemove.push(entry);
Packit Service b7b338
  }
Packit Service b7b338
  for (i = 0; i < tocEntriesToRemove.length; i++) {
Packit Service b7b338
    toc.removeChild(tocEntriesToRemove[i]);
Packit Service b7b338
  }
Packit Service b7b338

Packit Service b7b338
  // Rebuild TOC entries.
Packit Service b7b338
  var entries = tocEntries(document.getElementById("content"), toclevels);
Packit Service b7b338
  for (var i = 0; i < entries.length; ++i) {
Packit Service b7b338
    var entry = entries[i];
Packit Service b7b338
    if (entry.element.id == "")
Packit Service b7b338
      entry.element.id = "_toc_" + i;
Packit Service b7b338
    var a = document.createElement("a");
Packit Service b7b338
    a.href = "#" + entry.element.id;
Packit Service b7b338
    a.appendChild(document.createTextNode(entry.text));
Packit Service b7b338
    var div = document.createElement("div");
Packit Service b7b338
    div.appendChild(a);
Packit Service b7b338
    div.className = "toclevel" + entry.toclevel;
Packit Service b7b338
    toc.appendChild(div);
Packit Service b7b338
  }
Packit Service b7b338
  if (entries.length == 0)
Packit Service b7b338
    toc.parentNode.removeChild(toc);
Packit Service b7b338
},
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
/////////////////////////////////////////////////////////////////////
Packit Service b7b338
// Footnotes generator
Packit Service b7b338
/////////////////////////////////////////////////////////////////////
Packit Service b7b338

Packit Service b7b338
/* Based on footnote generation code from:
Packit Service b7b338
 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
Packit Service b7b338
 */
Packit Service b7b338

Packit Service b7b338
footnotes: function () {
Packit Service b7b338
  // Delete existing footnote entries in case we're reloading the footnodes.
Packit Service b7b338
  var i;
Packit Service b7b338
  var noteholder = document.getElementById("footnotes");
Packit Service b7b338
  if (!noteholder) {
Packit Service b7b338
    return;
Packit Service b7b338
  }
Packit Service b7b338
  var entriesToRemove = [];
Packit Service b7b338
  for (i = 0; i < noteholder.childNodes.length; i++) {
Packit Service b7b338
    var entry = noteholder.childNodes[i];
Packit Service b7b338
    if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
Packit Service b7b338
      entriesToRemove.push(entry);
Packit Service b7b338
  }
Packit Service b7b338
  for (i = 0; i < entriesToRemove.length; i++) {
Packit Service b7b338
    noteholder.removeChild(entriesToRemove[i]);
Packit Service b7b338
  }
Packit Service b7b338

Packit Service b7b338
  // Rebuild footnote entries.
Packit Service b7b338
  var cont = document.getElementById("content");
Packit Service b7b338
  var spans = cont.getElementsByTagName("span");
Packit Service b7b338
  var refs = {};
Packit Service b7b338
  var n = 0;
Packit Service b7b338
  for (i=0; i
Packit Service b7b338
    if (spans[i].className == "footnote") {
Packit Service b7b338
      n++;
Packit Service b7b338
      var note = spans[i].getAttribute("data-note");
Packit Service b7b338
      if (!note) {
Packit Service b7b338
        // Use [\s\S] in place of . so multi-line matches work.
Packit Service b7b338
        // Because JavaScript has no s (dotall) regex flag.
Packit Service b7b338
        note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
Packit Service b7b338
        spans[i].innerHTML =
Packit Service b7b338
          "[
Packit Service b7b338
          "' title='View footnote' class='footnote'>" + n + "]";
Packit Service b7b338
        spans[i].setAttribute("data-note", note);
Packit Service b7b338
      }
Packit Service b7b338
      noteholder.innerHTML +=
Packit Service b7b338
        "
" +
Packit Service b7b338
        "" +
Packit Service b7b338
        n + ". " + note + "";
Packit Service b7b338
      var id =spans[i].getAttribute("id");
Packit Service b7b338
      if (id != null) refs["#"+id] = n;
Packit Service b7b338
    }
Packit Service b7b338
  }
Packit Service b7b338
  if (n == 0)
Packit Service b7b338
    noteholder.parentNode.removeChild(noteholder);
Packit Service b7b338
  else {
Packit Service b7b338
    // Process footnoterefs.
Packit Service b7b338
    for (i=0; i
Packit Service b7b338
      if (spans[i].className == "footnoteref") {
Packit Service b7b338
        var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
Packit Service b7b338
        href = href.match(/#.*/)[0];  // Because IE return full URL.
Packit Service b7b338
        n = refs[href];
Packit Service b7b338
        spans[i].innerHTML =
Packit Service b7b338
          "[
Packit Service b7b338
          "' title='View footnote' class='footnote'>" + n + "]";
Packit Service b7b338
      }
Packit Service b7b338
    }
Packit Service b7b338
  }
Packit Service b7b338
},
Packit Service b7b338

Packit Service b7b338
install: function(toclevels) {
Packit Service b7b338
  var timerId;
Packit Service b7b338

Packit Service b7b338
  function reinstall() {
Packit Service b7b338
    asciidoc.footnotes();
Packit Service b7b338
    if (toclevels) {
Packit Service b7b338
      asciidoc.toc(toclevels);
Packit Service b7b338
    }
Packit Service b7b338
  }
Packit Service b7b338

Packit Service b7b338
  function reinstallAndRemoveTimer() {
Packit Service b7b338
    clearInterval(timerId);
Packit Service b7b338
    reinstall();
Packit Service b7b338
  }
Packit Service b7b338

Packit Service b7b338
  timerId = setInterval(reinstall, 500);
Packit Service b7b338
  if (document.addEventListener)
Packit Service b7b338
    document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
Packit Service b7b338
  else
Packit Service b7b338
    window.onload = reinstallAndRemoveTimer;
Packit Service b7b338
}
Packit Service b7b338

Packit Service b7b338
}
Packit Service b7b338
asciidoc.install();
Packit Service b7b338
/*]]>*/
Packit Service b7b338
</script>
Packit Service b7b338
</head>
Packit Service b7b338
<body class="manpage">
Packit Service b7b338
Packit Service b7b338

Packit Service b7b338
nvme-wdc-smart-add-log(1) Manual Page
Packit Service b7b338

Packit Service b7b338

NAME

Packit Service b7b338
Packit Service b7b338

nvme-wdc-smart-add-log -

Packit Service b7b338
   Send NVMe WDC smart-add-log Vendor Unique Command, return result
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Packit Service b7b338
Packit Service b7b338

SYNOPSIS

Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
nvme wdc smart-add-log <device> [--interval=<NUM>, -i <NUM>] [--output-format=<normal|json> -o <normal|json>]
Packit Service b7b338
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Packit Service b7b338

DESCRIPTION

Packit Service b7b338
Packit Service b7b338

For the NVMe device given, send a Vendor Unique WDC smart-add-log command and

Packit Service b7b338
provide the additional smart log. The --interval option will return performance
Packit Service b7b338
statistics from the specified reporting interval.

Packit Service b7b338

The <device> parameter is mandatory and may be either the NVMe character

Packit Service b7b338
device (ex: /dev/nvme0).

Packit Service b7b338

This will only work on WDC devices supporting this feature.

Packit Service b7b338
Results for any other device are undefined.

Packit Service b7b338

On success it returns 0, error code otherwise.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Packit Service b7b338

OPTIONS

Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
-i <NUM>
Packit Service b7b338

Packit Service b7b338
Packit Service b7b338
--interval=<NUM>
Packit Service b7b338

Packit Service b7b338
Packit Service b7b338

Packit Service b7b338
        Return the statistics from specific interval, defaults to 14
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Packit Service b7b338
-o <format>
Packit Service b7b338

Packit Service b7b338
Packit Service b7b338
--output-format=<format>
Packit Service b7b338

Packit Service b7b338
Packit Service b7b338

Packit Service b7b338
        Set the reporting format to normal, or
Packit Service b7b338
        json. Only one output format can be used at a time.
Packit Service b7b338
        Default is normal.
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Valid Interval values and description :-

Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
style="margin-left:auto; margin-right:auto;"
Packit Service b7b338
width="100%"
Packit Service b7b338
frame="hsides"
Packit Service b7b338
cellspacing="0" cellpadding="4">
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Value 
Packit Service b7b338
Description
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

1

Packit Service b7b338

Most recent five (5) minute accumulated set.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

2-12

Packit Service b7b338

Previous five (5) minute accumulated sets.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

13

Packit Service b7b338

The accumulated total of sets 1 through 12 that contain the previous hour of

Packit Service b7b338
accumulated statistics.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

14

Packit Service b7b338

The statistical set accumulated since power-up.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

15

Packit Service b7b338

The statistical set accumulated during the entire lifetime of the device.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Packit Service b7b338

CA Log Page Data Output Explanation

Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
style="margin-left:auto; margin-right:auto;"
Packit Service b7b338
width="100%"
Packit Service b7b338
frame="hsides"
Packit Service b7b338
cellspacing="0" cellpadding="4">
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Field 
Packit Service b7b338
Description
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Physical NAND bytes written.

Packit Service b7b338

The number of bytes written to NAND. 16 bytes - hi/lo

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Physical NAND bytes read

Packit Service b7b338

The number of bytes read from NAND. 16 bytes - hi/lo

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Bad NAND Block Count

Packit Service b7b338

Raw and normalized count of the number of NAND blocks that have been

Packit Service b7b338
retired after the drives manufacturing tests (i.e. grown back blocks).
Packit Service b7b338
2 bytes normalized, 6 bytes raw count

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Uncorrectable Read Error Count

Packit Service b7b338

Total count of NAND reads that were not correctable by read retries, all

Packit Service b7b338
levels of ECC, or XOR (as applicable).  8 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Soft ECC Error Count

Packit Service b7b338

Total count of NAND reads that were not correctable by read retries, or

Packit Service b7b338
first-level ECC.  8 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

SSD End to End Detection Count

Packit Service b7b338

A count of the detected errors by the SSD end to end error correction which

Packit Service b7b338
includes DRAM, SRAM, or other storage element ECC/CRC protection mechanism (not
Packit Service b7b338
NAND ECC).  4 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

SSD End to End Correction Count

Packit Service b7b338

A count of the corrected errors by the SSD end to end error correction which

Packit Service b7b338
includes DRAM, SRAM, or other storage element ECC/CRC protection mechanism (not
Packit Service b7b338
NAND ECC).  4 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

System Data % Used

Packit Service b7b338

A normalized cumulative count of the number of erase cycles per block since

Packit Service b7b338
leaving the factory for the system (FW and metadata) area. Starts at 0 and
Packit Service b7b338
increments. 100 indicates that the estimated endurance has been consumed.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

User Data Max Erase Count

Packit Service b7b338

The maximum erase count across all NAND blocks in the drive. 4 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

User Data Min Erase Count

Packit Service b7b338

The minimum erase count across all NAND blocks in the drive. 4 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Refresh Count

Packit Service b7b338

A count of the number of blocks that have been re-allocated due to

Packit Service b7b338
background operations only.  8 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Program Fail Count

Packit Service b7b338

Raw and normalized count of total program failures. Normalized count

Packit Service b7b338
starts at 100 and shows the percent of remaining allowable failures.
Packit Service b7b338
2 bytes normalized, 6 bytes raw count

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

User Data Erase Fail Count

Packit Service b7b338

Raw and normalized count of total erase failures in the user area.

Packit Service b7b338
Normalized count starts at 100 and shows the percent of remaining
Packit Service b7b338
allowable failures.  2 bytes normalized, 6 bytes raw count

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

System Area Erase Fail Count

Packit Service b7b338

Raw and normalized count of total erase failures in the system area.

Packit Service b7b338
Normalized count starts at 100 and shows the percent of remaining
Packit Service b7b338
allowable failures.  2 bytes normalized, 6 bytes raw count

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Thermal Throttling Status

Packit Service b7b338

The current status of thermal throttling (enabled or disabled).

Packit Service b7b338
2 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Thermal Throttling Count

Packit Service b7b338

A count of the number of thermal throttling events. 2 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

PCIe Correctable Error Count

Packit Service b7b338

Summation counter of all PCIe correctable errors (Bad TLP, Bad

Packit Service b7b338
DLLP, Receiver error, Replay timeouts, Replay rollovers).  8 bytes

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Packit Service b7b338

C1 Log Page Data Output Explanation

Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
style="margin-left:auto; margin-right:auto;"
Packit Service b7b338
width="100%"
Packit Service b7b338
frame="hsides"
Packit Service b7b338
cellspacing="0" cellpadding="4">
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Field 
Packit Service b7b338
Description
Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Read Commands

Packit Service b7b338

Number of host read commands received during the reporting period.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Read Blocks

Packit Service b7b338

Number of 512-byte blocks requested during the reporting period.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Average Read Size

Packit Service b7b338

Average Read size is calculated using (Host Read Blocks/Host Read Commands).

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Read Cache Hit Commands

Packit Service b7b338

Number of host read commands that serviced entirely from the on-board read

Packit Service b7b338
cache during the reporting period. No access to the NAND flash memory was required.
Packit Service b7b338
This count is only updated if the entire command was serviced from the cache memory.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Read Cache Hit Percentage

Packit Service b7b338

Percentage of host read commands satisfied from the cache.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Read Cache Hit Blocks

Packit Service b7b338

Number of 512-byte blocks of data that have been returned for Host Read Cache Hit

Packit Service b7b338
Commands during the reporting period. This count is only updated with the blocks
Packit Service b7b338
returned for host read commands that were serviced entirely from cache memory.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Average Read Cache Hit Size

Packit Service b7b338

Average size of read commands satisfied from the cache.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Read Commands Stalled

Packit Service b7b338

Number of host read commands that were stalled due to a lack of resources within

Packit Service b7b338
the SSD during the reporting period (NAND flash command queue full, low cache page count,
Packit Service b7b338
cache page contention, etc.). Commands are not considered stalled if the only reason for
Packit Service b7b338
the delay was waiting for the data to be physically read from the NAND flash. It is normal
Packit Service b7b338
to expect this count to equal zero on heavily utilized systems.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Read Commands Stalled Percentage

Packit Service b7b338

Percentage of read commands that were stalled. If the figure is consistently high,

Packit Service b7b338
then consideration should be given to spreading the data across multiple SSDs.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Write Commands

Packit Service b7b338

Number of host write commands received during the reporting period.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Write Blocks

Packit Service b7b338

Number of 512-byte blocks written during the reporting period.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Average Write Size

Packit Service b7b338

Average Write size calculated using (Host Write Blocks/Host Write Commands).

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Write Odd Start Commands

Packit Service b7b338

Number of host write commands that started on a non-aligned boundary during

Packit Service b7b338
the reporting period. The size of the boundary alignment is normally 4K; therefore
Packit Service b7b338
this returns the number of commands that started on a non-4K aligned boundary.
Packit Service b7b338
The SSD requires slightly more time to process non-aligned write commands than it
Packit Service b7b338
does to process aligned write commands.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Write Odd Start Commands Percentage

Packit Service b7b338

Percentage of host write commands that started on a non-aligned boundary. If this

Packit Service b7b338
figure is equal to or near 100%, and the NAND Read Before Write value is also high,
Packit Service b7b338
then the user should investigate the possibility of offsetting the file system. For
Packit Service b7b338
Microsoft Windows systems, the user can use Diskpart. For Unix-based operating systems,
Packit Service b7b338
there is normally a method whereby file system partitions can be placed where required.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Write Odd End Commands

Packit Service b7b338

Number of host write commands that ended on a non-aligned boundary during the

Packit Service b7b338
reporting period. The size of the boundary alignment is normally 4K; therefore this
Packit Service b7b338
returns the number of commands that ended on a non-4K aligned boundary.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Write Odd End Commands Percentage

Packit Service b7b338

Percentage of host write commands that ended on a non-aligned boundary.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Write Commands Stalled

Packit Service b7b338

Number of host write commands that were stalled due to a lack of resources within the

Packit Service b7b338
SSD during the reporting period. The most likely cause is that the write data was being
Packit Service b7b338
received faster than it could be saved to the NAND flash memory. If there was a large
Packit Service b7b338
volume of read commands being processed simultaneously, then other causes might include
Packit Service b7b338
the NAND flash command queue being full, low cache page count, or cache page contention, etc.
Packit Service b7b338
It is normal to expect this count to be non-zero on heavily utilized systems.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Host Write Commands Stalled Percentage

Packit Service b7b338

Percentage of write commands that were stalled. If the figure is consistently high, then

Packit Service b7b338
consideration should be given to spreading the data across multiple SSDs.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

NAND Read Commands

Packit Service b7b338

Number of read commands issued to the NAND devices during the reporting period.

Packit Service b7b338
This figure will normally be much higher than the host read commands figure, as the data
Packit Service b7b338
needed to satisfy a single host read command may be spread across several NAND flash devices.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

NAND Read Blocks

Packit Service b7b338

Number of 512-byte blocks requested from NAND flash devices during the reporting period.

Packit Service b7b338
This figure would normally be about the same as the host read blocks figure

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Average NAND Read Size

Packit Service b7b338

Average size of NAND read commands.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

NAND Write Commands

Packit Service b7b338

Number of write commands issued to the NAND devices during the reporting period.

Packit Service b7b338
There is no real correlation between the number of host write commands issued and the
Packit Service b7b338
number of NAND Write Commands.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

NAND Write Blocks

Packit Service b7b338

Number of 512-byte blocks written to the NAND flash devices during the reporting period.

Packit Service b7b338
This figure would normally be about the same as the host write blocks figure.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Average NAND Write Size

Packit Service b7b338

Average size of NAND write commands. This figure should never be greater than 128K, as

Packit Service b7b338
this is the maximum size write that is ever issued to a NAND device.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

NAND Read Before Write

Packit Service b7b338

This is the number of read before write operations that were required to process

Packit Service b7b338
non-aligned host write commands during the reporting period. See Host Write Odd Start
Packit Service b7b338
Commands and Host Write Odd End Commands. NAND Read Before Write operations have
Packit Service b7b338
a detrimental effect on the overall performance of the device.

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338

Packit Service b7b338
Packit Service b7b338

EXAMPLES

Packit Service b7b338
Packit Service b7b338
Packit Service b7b338
  • Packit Service b7b338

    Packit Service b7b338
    Has the program issue WDC smart-add-log Vendor Unique Command with default interval (14) :
    
    Packit Service b7b338

    Packit Service b7b338
    Packit Service b7b338
    Packit Service b7b338
    # nvme wdc smart-add-log /dev/nvme0
    Packit Service b7b338
    
    
    Packit Service b7b338
    
    
    Packit Service b7b338
    
    
    Packit Service b7b338
    
    
    Packit Service b7b338
    
    
    Packit Service b7b338
    Packit Service b7b338

    NVME

    Packit Service b7b338
    Packit Service b7b338

    Part of the nvme-user suite.

    Packit Service b7b338
    
    
    Packit Service b7b338
    
    
    Packit Service b7b338
    
    
    Packit Service b7b338

    Packit Service b7b338
    Packit Service b7b338
    Packit Service b7b338
    Last updated
    
    Packit Service b7b338
     2018-01-17 20:47:00 KST
    
    Packit Service b7b338
    
    
    Packit Service b7b338
    
    
    Packit Service b7b338
    </body>
    
    Packit Service b7b338
    </html>