'\" t
.\" Title: nvme-wdc-vs-smart-add-log
-.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
-.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 06/16/2020
+.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\" Date: 08/05/2020
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-WDC\-VS\-SMART" "1" "06/16/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-WDC\-VS\-SMART" "1" "08/05/2020" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.sp
.nf
\fInvme wdc vs\-smart\-add\-log\fR <device> [\-\-interval=<NUM>, \-i <NUM>] [\-\-output\-format=<normal|json> \-o <normal|json>]
+ [\-\-log\-page\-version=<NUM>, \-l <NUM>] [\-\-log\-page\-mask=<LIST>, \-p <LIST>]
.fi
.SH "DESCRIPTION"
.sp
-For the NVMe device given, send a Vendor Unique WDC vs\-smart\-add\-log command and provide the additional smart log\&. The \-\-interval option will return performance statistics from the specified reporting interval\&.
+For the NVMe device given, send a Vendor Unique WDC vs\-smart\-add\-log command and provide the additional smart log\&.
.sp
-The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0)\&.
+The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0) or block device (ex: /dev/nvme0n1)\&.
.sp
This will only work on WDC devices supporting this feature\&. Results for any other device are undefined\&.
.sp
.PP
\-i <NUM>, \-\-interval=<NUM>
.RS 4
-Return the statistics from specific interval, defaults to 14
+Return the statistics from specific interval, defaults to 14\&. This parameter is only valid for the 0xC1 log page and ignored for all other log pages\&.
.RE
.PP
\-o <format>, \-\-output\-format=<format>
\fInormal\fR, or
\fIjson\fR\&. Only one output format can be used at a time\&. Default is normal\&.
.RE
+.PP
+\-l <NUM>, \-\-log\-page\-version=<NUM>
+.RS 4
+Log Page Version: 0 = vendor, 1 = WDC\&. This parameter is only valid for the 0xC0 log page and ignored for all other log pages\&.
+.RE
+.PP
+\-p <LIST>, \-\-log\-page\-mask=<LIST>
+.RS 4
+Supply a comma separated list of desired log pages to display\&. The possible values are 0xc0, 0xc1, 0xca, 0xd0\&. Note: Not all pages are supported on all drives\&. The default is to display all supported log pages\&.
+.RE
.sp
Valid Interval values and description :\-
.TS
T}
.TE
.sp 1
-.SH "CA LOG PAGE DATA OUTPUT EXPLANATION"
-.TS
-allbox tab(:);
-ltB ltB.
-T{
-Field
-T}:T{
-Description
-T}
-.T&
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt.
-T{
-.sp
-\fBPhysical NAND bytes written\&.\fR
-T}:T{
-.sp
-The number of bytes written to NAND\&. 16 bytes \- hi/lo
-T}
-T{
-.sp
-\fBPhysical NAND bytes read\fR
-T}:T{
-.sp
-The number of bytes read from NAND\&. 16 bytes \- hi/lo
-T}
-T{
-.sp
-\fBBad NAND Block Count\fR
-T}:T{
-.sp
-Raw and normalized count of the number of NAND blocks that have been retired after the drives manufacturing tests (i\&.e\&. grown back blocks)\&. 2 bytes normalized, 6 bytes raw count
-T}
-T{
-.sp
-\fBUncorrectable Read Error Count\fR
-T}:T{
-.sp
-Total count of NAND reads that were not correctable by read retries, all levels of ECC, or XOR (as applicable)\&. 8 bytes
-T}
-T{
-.sp
-\fBSoft ECC Error Count\fR
-T}:T{
-.sp
-Total count of NAND reads that were not correctable by read retries, or first\-level ECC\&. 8 bytes
-T}
-T{
-.sp
-\fBSSD End to End Detection Count\fR
-T}:T{
-.sp
-A count of the detected errors by the SSD end to end error correction which includes DRAM, SRAM, or other storage element ECC/CRC protection mechanism (not NAND ECC)\&. 4 bytes
-T}
-T{
-.sp
-\fBSSD End to End Correction Count\fR
-T}:T{
-.sp
-A count of the corrected errors by the SSD end to end error correction which includes DRAM, SRAM, or other storage element ECC/CRC protection mechanism (not NAND ECC)\&. 4 bytes
-T}
-T{
-.sp
-\fBSystem Data % Used\fR
-T}:T{
-.sp
-A normalized cumulative count of the number of erase cycles per block since leaving the factory for the system (FW and metadata) area\&. Starts at 0 and increments\&. 100 indicates that the estimated endurance has been consumed\&.
-T}
-T{
-.sp
-\fBUser Data Max Erase Count\fR
-T}:T{
-.sp
-The maximum erase count across all NAND blocks in the drive\&. 4 bytes
-T}
-T{
-.sp
-\fBUser Data Min Erase Count\fR
-T}:T{
-.sp
-The minimum erase count across all NAND blocks in the drive\&. 4 bytes
-T}
-T{
-.sp
-\fBRefresh Count\fR
-T}:T{
-.sp
-A count of the number of blocks that have been re\-allocated due to background operations only\&. 8 bytes
-T}
-T{
-.sp
-\fBProgram Fail Count\fR
-T}:T{
-.sp
-Raw and normalized count of total program failures\&. Normalized count starts at 100 and shows the percent of remaining allowable failures\&. 2 bytes normalized, 6 bytes raw count
-T}
-T{
-.sp
-\fBUser Data Erase Fail Count\fR
-T}:T{
-.sp
-Raw and normalized count of total erase failures in the user area\&. Normalized count starts at 100 and shows the percent of remaining allowable failures\&. 2 bytes normalized, 6 bytes raw count
-T}
-T{
-.sp
-\fBSystem Area Erase Fail Count\fR
-T}:T{
-.sp
-Raw and normalized count of total erase failures in the system area\&. Normalized count starts at 100 and shows the percent of remaining allowable failures\&. 2 bytes normalized, 6 bytes raw count
-T}
-T{
-.sp
-\fBThermal Throttling Status\fR
-T}:T{
-.sp
-The current status of thermal throttling (enabled or disabled)\&. 2 bytes
-T}
-T{
-.sp
-\fBThermal Throttling Count\fR
-T}:T{
-.sp
-A count of the number of thermal throttling events\&. 2 bytes
-T}
-T{
-.sp
-\fBPCIe Correctable Error Count\fR
-T}:T{
-.sp
-Summation counter of all PCIe correctable errors (Bad TLP, Bad DLLP, Receiver error, Replay timeouts, Replay rollovers)\&. 8 bytes
-T}
-.TE
-.sp 1
-.SH "C1 LOG PAGE DATA OUTPUT EXPLANATION"
-.TS
-allbox tab(:);
-ltB ltB.
-T{
-Field
-T}:T{
-Description
-T}
-.T&
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt
-lt lt.
-T{
-.sp
-\fBHost Read Commands\fR
-T}:T{
-.sp
-Number of host read commands received during the reporting period\&.
-T}
-T{
-.sp
-\fBHost Read Blocks\fR
-T}:T{
-.sp
-Number of 512\-byte blocks requested during the reporting period\&.
-T}
-T{
-.sp
-\fBAverage Read Size\fR
-T}:T{
-.sp
-Average Read size is calculated using (Host Read Blocks/Host Read Commands)\&.
-T}
-T{
-.sp
-\fBHost Read Cache Hit Commands\fR
-T}:T{
-.sp
-Number of host read commands that serviced entirely from the on\-board read cache during the reporting period\&. No access to the NAND flash memory was required\&. This count is only updated if the entire command was serviced from the cache memory\&.
-T}
-T{
-.sp
-\fBHost Read Cache Hit Percentage\fR
-T}:T{
-.sp
-Percentage of host read commands satisfied from the cache\&.
-T}
-T{
-.sp
-\fBHost Read Cache Hit Blocks\fR
-T}:T{
-.sp
-Number of 512\-byte blocks of data that have been returned for Host Read Cache Hit Commands during the reporting period\&. This count is only updated with the blocks returned for host read commands that were serviced entirely from cache memory\&.
-T}
-T{
-.sp
-\fBAverage Read Cache Hit Size\fR
-T}:T{
-.sp
-Average size of read commands satisfied from the cache\&.
-T}
-T{
-.sp
-\fBHost Read Commands Stalled\fR
-T}:T{
-.sp
-Number of host read commands that were stalled due to a lack of resources within the SSD during the reporting period (NAND flash command queue full, low cache page count, cache page contention, etc\&.)\&. Commands are not considered stalled if the only reason for the delay was waiting for the data to be physically read from the NAND flash\&. It is normal to expect this count to equal zero on heavily utilized systems\&.
-T}
-T{
-.sp
-\fBHost Read Commands Stalled Percentage\fR
-T}:T{
-.sp
-Percentage of read commands that were stalled\&. If the figure is consistently high, then consideration should be given to spreading the data across multiple SSDs\&.
-T}
-T{
-.sp
-\fBHost Write Commands\fR
-T}:T{
-.sp
-Number of host write commands received during the reporting period\&.
-T}
-T{
-.sp
-\fBHost Write Blocks\fR
-T}:T{
-.sp
-Number of 512\-byte blocks written during the reporting period\&.
-T}
-T{
-.sp
-\fBAverage Write Size\fR
-T}:T{
-.sp
-Average Write size calculated using (Host Write Blocks/Host Write Commands)\&.
-T}
-T{
-.sp
-\fBHost Write Odd Start Commands\fR
-T}:T{
-.sp
-Number of host write commands that started on a non\-aligned boundary during the reporting period\&. The size of the boundary alignment is normally 4K; therefore this returns the number of commands that started on a non\-4K aligned boundary\&. The SSD requires slightly more time to process non\-aligned write commands than it does to process aligned write commands\&.
-T}
-T{
-.sp
-\fBHost Write Odd Start Commands Percentage\fR
-T}:T{
-.sp
-Percentage of host write commands that started on a non\-aligned boundary\&. If this figure is equal to or near 100%, and the NAND Read Before Write value is also high, then the user should investigate the possibility of offsetting the file system\&. For Microsoft Windows systems, the user can use Diskpart\&. For Unix\-based operating systems, there is normally a method whereby file system partitions can be placed where required\&.
-T}
-T{
-.sp
-\fBHost Write Odd End Commands\fR
-T}:T{
-.sp
-Number of host write commands that ended on a non\-aligned boundary during the reporting period\&. The size of the boundary alignment is normally 4K; therefore this returns the number of commands that ended on a non\-4K aligned boundary\&.
-T}
-T{
-.sp
-\fBHost Write Odd End Commands Percentage\fR
-T}:T{
-.sp
-Percentage of host write commands that ended on a non\-aligned boundary\&.
-T}
-T{
-.sp
-\fBHost Write Commands Stalled\fR
-T}:T{
-.sp
-Number of host write commands that were stalled due to a lack of resources within the SSD during the reporting period\&. The most likely cause is that the write data was being received faster than it could be saved to the NAND flash memory\&. If there was a large volume of read commands being processed simultaneously, then other causes might include the NAND flash command queue being full, low cache page count, or cache page contention, etc\&. It is normal to expect this count to be non\-zero on heavily utilized systems\&.
-T}
-T{
-.sp
-\fBHost Write Commands Stalled Percentage\fR
-T}:T{
-.sp
-Percentage of write commands that were stalled\&. If the figure is consistently high, then consideration should be given to spreading the data across multiple SSDs\&.
-T}
-T{
-.sp
-\fBNAND Read Commands\fR
-T}:T{
-.sp
-Number of read commands issued to the NAND devices during the reporting period\&. This figure will normally be much higher than the host read commands figure, as the data needed to satisfy a single host read command may be spread across several NAND flash devices\&.
-T}
-T{
-.sp
-\fBNAND Read Blocks\fR
-T}:T{
-.sp
-Number of 512\-byte blocks requested from NAND flash devices during the reporting period\&. This figure would normally be about the same as the host read blocks figure
-T}
-T{
-.sp
-\fBAverage NAND Read Size\fR
-T}:T{
-.sp
-Average size of NAND read commands\&.
-T}
-T{
-.sp
-\fBNAND Write Commands\fR
-T}:T{
-.sp
-Number of write commands issued to the NAND devices during the reporting period\&. There is no real correlation between the number of host write commands issued and the number of NAND Write Commands\&.
-T}
-T{
-.sp
-\fBNAND Write Blocks\fR
-T}:T{
-.sp
-Number of 512\-byte blocks written to the NAND flash devices during the reporting period\&. This figure would normally be about the same as the host write blocks figure\&.
-T}
-T{
+.SH "EXAMPLES"
.sp
-\fBAverage NAND Write Size\fR
-T}:T{
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Has the program issue WDC vs\-smart\-add\-log Vendor Unique Command with default interval (14) :
.sp
-Average size of NAND write commands\&. This figure should never be greater than 128K, as this is the maximum size write that is ever issued to a NAND device\&.
-T}
-T{
+.if n \{\
+.RS 4
+.\}
+.nf
+# nvme wdc vs\-smart\-add\-log /dev/nvme0
+.fi
+.if n \{\
+.RE
+.\}
+.RE
.sp
-\fBNAND Read Before Write\fR
-T}:T{
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Has the program issue WDC vs\-smart\-add\-log Vendor Unique Command for just the 0xCA log page :
.sp
-This is the number of read before write operations that were required to process non\-aligned host write commands during the reporting period\&. See Host Write Odd Start Commands and Host Write Odd End Commands\&. NAND Read Before Write operations have a detrimental effect on the overall performance of the device\&.
-T}
-.TE
-.sp 1
-.SH "EXAMPLES"
+.if n \{\
+.RS 4
+.\}
+.nf
+# nvme wdc vs\-smart\-add\-log /dev/nvme0 \-p 0xCA
+.fi
+.if n \{\
+.RE
+.\}
+.RE
.sp
.RS 4
.ie n \{\
.sp -1
.IP \(bu 2.3
.\}
-Has the program issue WDC vs\-smart\-add\-log Vendor Unique Command with default interval (14) :
+Has the program issue WDC vs\-smart\-add\-log Vendor Unique Command for 0xC0 and 0xCA log pages :
.sp
.if n \{\
.RS 4
.\}
.nf
-# nvme wdc vs\-smart\-add\-log /dev/nvme0
+# nvme wdc vs\-smart\-add\-log /dev/nvme0 \-p 0xCA,0xC0
.fi
.if n \{\
.RE
+<?xml version="1.0" encoding="UTF-8"?>\r
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
<head>\r
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 8.6.8" />\r
+<meta name="generator" content="AsciiDoc 8.6.10" />\r
<title>nvme-wdc-vs-smart-add-log(1)</title>\r
<style type="text/css">\r
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
padding: 0;\r
margin: 0;\r
}\r
-\r
+pre {\r
+ white-space: pre-wrap;\r
+}\r
\r
#author {\r
color: #527bbd;\r
}\r
\r
div.imageblock div.content { padding-left: 0; }\r
-span.image img { border-style: none; }\r
+span.image img { border-style: none; vertical-align: text-bottom; }\r
a.image:visited { color: white; }\r
\r
dl {\r
<h2 id="_synopsis">SYNOPSIS</h2>\r
<div class="sectionbody">\r
<div class="verseblock">\r
-<pre class="content"><em>nvme wdc vs-smart-add-log</em> <device> [--interval=<NUM>, -i <NUM>] [--output-format=<normal|json> -o <normal|json>]</pre>\r
+<pre class="content"><em>nvme wdc vs-smart-add-log</em> <device> [--interval=<NUM>, -i <NUM>] [--output-format=<normal|json> -o <normal|json>]\r
+ [--log-page-version=<NUM>, -l <NUM>] [--log-page-mask=<LIST>, -p <LIST>]</pre>\r
<div class="attribution">\r
</div></div>\r
</div>\r
<h2 id="_description">DESCRIPTION</h2>\r
<div class="sectionbody">\r
<div class="paragraph"><p>For the NVMe device given, send a Vendor Unique WDC vs-smart-add-log command and\r
-provide the additional smart log. The --interval option will return performance\r
-statistics from the specified reporting interval.</p></div>\r
+provide the additional smart log.</p></div>\r
<div class="paragraph"><p>The <device> parameter is mandatory and may be either the NVMe character\r
-device (ex: /dev/nvme0).</p></div>\r
+device (ex: /dev/nvme0) or block device (ex: /dev/nvme0n1).</p></div>\r
<div class="paragraph"><p>This will only work on WDC devices supporting this feature.\r
Results for any other device are undefined.</p></div>\r
<div class="paragraph"><p>On success it returns 0, error code otherwise.</p></div>\r
</dt>\r
<dd>\r
<p>\r
- Return the statistics from specific interval, defaults to 14\r
+ Return the statistics from specific interval, defaults to 14. This parameter is only valid for the 0xC1 log page\r
+ and ignored for all other log pages.\r
</p>\r
</dd>\r
<dt class="hdlist1">\r
Default is normal.\r
</p>\r
</dd>\r
+<dt class="hdlist1">\r
+-l <NUM>\r
+</dt>\r
+<dt class="hdlist1">\r
+--log-page-version=<NUM>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Log Page Version: 0 = vendor, 1 = WDC. This parameter is only valid for the 0xC0 log page and ignored for all\r
+ other log pages.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-p <LIST>\r
+</dt>\r
+<dt class="hdlist1">\r
+--log-page-mask=<LIST>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Supply a comma separated list of desired log pages to display.\r
+ The possible values are 0xc0, 0xc1, 0xca, 0xd0.\r
+ Note: Not all pages are supported on all drives.\r
+ The default is to display all supported log pages.\r
+</p>\r
+</dd>\r
</dl></div>\r
<div class="paragraph"><p>Valid Interval values and description :-</p></div>\r
<div class="tableblock">\r
</div>\r
</div>\r
<div class="sect1">\r
-<h2 id="_ca_log_page_data_output_explanation">CA Log Page Data Output Explanation</h2>\r
-<div class="sectionbody">\r
-<div class="tableblock">\r
-<table rules="all"\r
-style="margin-left:auto; margin-right:auto;"\r
-width="100%"\r
-frame="hsides"\r
-cellspacing="0" cellpadding="4">\r
-<col width="50%" />\r
-<col width="50%" />\r
-<thead>\r
-<tr>\r
-<th align="left" valign="top">Field </th>\r
-<th align="left" valign="top">Description</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Physical NAND bytes written.</strong></p></td>\r
-<td align="left" valign="top"><p class="table">The number of bytes written to NAND. 16 bytes - hi/lo</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Physical NAND bytes read</strong></p></td>\r
-<td align="left" valign="top"><p class="table">The number of bytes read from NAND. 16 bytes - hi/lo</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Bad NAND Block Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Raw and normalized count of the number of NAND blocks that have been\r
-retired after the drives manufacturing tests (i.e. grown back blocks).\r
-2 bytes normalized, 6 bytes raw count</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Uncorrectable Read Error Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Total count of NAND reads that were not correctable by read retries, all\r
-levels of ECC, or XOR (as applicable). 8 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Soft ECC Error Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Total count of NAND reads that were not correctable by read retries, or\r
-first-level ECC. 8 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>SSD End to End Detection Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">A count of the detected errors by the SSD end to end error correction which\r
-includes DRAM, SRAM, or other storage element ECC/CRC protection mechanism (not\r
-NAND ECC). 4 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>SSD End to End Correction Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">A count of the corrected errors by the SSD end to end error correction which\r
-includes DRAM, SRAM, or other storage element ECC/CRC protection mechanism (not\r
-NAND ECC). 4 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>System Data % Used</strong></p></td>\r
-<td align="left" valign="top"><p class="table">A normalized cumulative count of the number of erase cycles per block since\r
-leaving the factory for the system (FW and metadata) area. Starts at 0 and\r
-increments. 100 indicates that the estimated endurance has been consumed.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>User Data Max Erase Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">The maximum erase count across all NAND blocks in the drive. 4 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>User Data Min Erase Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">The minimum erase count across all NAND blocks in the drive. 4 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Refresh Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">A count of the number of blocks that have been re-allocated due to\r
-background operations only. 8 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Program Fail Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Raw and normalized count of total program failures. Normalized count\r
-starts at 100 and shows the percent of remaining allowable failures.\r
-2 bytes normalized, 6 bytes raw count</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>User Data Erase Fail Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Raw and normalized count of total erase failures in the user area.\r
-Normalized count starts at 100 and shows the percent of remaining\r
-allowable failures. 2 bytes normalized, 6 bytes raw count</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>System Area Erase Fail Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Raw and normalized count of total erase failures in the system area.\r
-Normalized count starts at 100 and shows the percent of remaining\r
-allowable failures. 2 bytes normalized, 6 bytes raw count</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Thermal Throttling Status</strong></p></td>\r
-<td align="left" valign="top"><p class="table">The current status of thermal throttling (enabled or disabled).\r
-2 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Thermal Throttling Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">A count of the number of thermal throttling events. 2 bytes</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>PCIe Correctable Error Count</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Summation counter of all PCIe correctable errors (Bad TLP, Bad\r
-DLLP, Receiver error, Replay timeouts, Replay rollovers). 8 bytes</p></td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-</div>\r
-</div>\r
-</div>\r
-<div class="sect1">\r
-<h2 id="_c1_log_page_data_output_explanation">C1 Log Page Data Output Explanation</h2>\r
-<div class="sectionbody">\r
-<div class="tableblock">\r
-<table rules="all"\r
-style="margin-left:auto; margin-right:auto;"\r
-width="100%"\r
-frame="hsides"\r
-cellspacing="0" cellpadding="4">\r
-<col width="50%" />\r
-<col width="50%" />\r
-<thead>\r
-<tr>\r
-<th align="left" valign="top">Field </th>\r
-<th align="left" valign="top">Description</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Read Commands</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of host read commands received during the reporting period.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Read Blocks</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of 512-byte blocks requested during the reporting period.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Average Read Size</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Average Read size is calculated using (Host Read Blocks/Host Read Commands).</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Read Cache Hit Commands</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of host read commands that serviced entirely from the on-board read\r
-cache during the reporting period. No access to the NAND flash memory was required.\r
-This count is only updated if the entire command was serviced from the cache memory.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Read Cache Hit Percentage</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Percentage of host read commands satisfied from the cache.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Read Cache Hit Blocks</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of 512-byte blocks of data that have been returned for Host Read Cache Hit\r
-Commands during the reporting period. This count is only updated with the blocks\r
-returned for host read commands that were serviced entirely from cache memory.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Average Read Cache Hit Size</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Average size of read commands satisfied from the cache.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Read Commands Stalled</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of host read commands that were stalled due to a lack of resources within\r
-the SSD during the reporting period (NAND flash command queue full, low cache page count,\r
-cache page contention, etc.). Commands are not considered stalled if the only reason for\r
-the delay was waiting for the data to be physically read from the NAND flash. It is normal\r
-to expect this count to equal zero on heavily utilized systems.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Read Commands Stalled Percentage</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Percentage of read commands that were stalled. If the figure is consistently high,\r
-then consideration should be given to spreading the data across multiple SSDs.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Write Commands</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of host write commands received during the reporting period.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Write Blocks</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of 512-byte blocks written during the reporting period.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Average Write Size</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Average Write size calculated using (Host Write Blocks/Host Write Commands).</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Write Odd Start Commands</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of host write commands that started on a non-aligned boundary during\r
-the reporting period. The size of the boundary alignment is normally 4K; therefore\r
-this returns the number of commands that started on a non-4K aligned boundary.\r
-The SSD requires slightly more time to process non-aligned write commands than it\r
-does to process aligned write commands.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Write Odd Start Commands Percentage</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Percentage of host write commands that started on a non-aligned boundary. If this\r
-figure is equal to or near 100%, and the NAND Read Before Write value is also high,\r
-then the user should investigate the possibility of offsetting the file system. For\r
-Microsoft Windows systems, the user can use Diskpart. For Unix-based operating systems,\r
-there is normally a method whereby file system partitions can be placed where required.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Write Odd End Commands</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of host write commands that ended on a non-aligned boundary during the\r
-reporting period. The size of the boundary alignment is normally 4K; therefore this\r
-returns the number of commands that ended on a non-4K aligned boundary.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Write Odd End Commands Percentage</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Percentage of host write commands that ended on a non-aligned boundary.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Write Commands Stalled</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of host write commands that were stalled due to a lack of resources within the\r
-SSD during the reporting period. The most likely cause is that the write data was being\r
-received faster than it could be saved to the NAND flash memory. If there was a large\r
-volume of read commands being processed simultaneously, then other causes might include\r
-the NAND flash command queue being full, low cache page count, or cache page contention, etc.\r
-It is normal to expect this count to be non-zero on heavily utilized systems.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Host Write Commands Stalled Percentage</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Percentage of write commands that were stalled. If the figure is consistently high, then\r
-consideration should be given to spreading the data across multiple SSDs.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>NAND Read Commands</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of read commands issued to the NAND devices during the reporting period.\r
-This figure will normally be much higher than the host read commands figure, as the data\r
-needed to satisfy a single host read command may be spread across several NAND flash devices.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>NAND Read Blocks</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of 512-byte blocks requested from NAND flash devices during the reporting period.\r
-This figure would normally be about the same as the host read blocks figure</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Average NAND Read Size</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Average size of NAND read commands.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>NAND Write Commands</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of write commands issued to the NAND devices during the reporting period.\r
-There is no real correlation between the number of host write commands issued and the\r
-number of NAND Write Commands.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>NAND Write Blocks</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Number of 512-byte blocks written to the NAND flash devices during the reporting period.\r
-This figure would normally be about the same as the host write blocks figure.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>Average NAND Write Size</strong></p></td>\r
-<td align="left" valign="top"><p class="table">Average size of NAND write commands. This figure should never be greater than 128K, as\r
-this is the maximum size write that is ever issued to a NAND device.</p></td>\r
-</tr>\r
-<tr>\r
-<td align="left" valign="top"><p class="table"><strong>NAND Read Before Write</strong></p></td>\r
-<td align="left" valign="top"><p class="table">This is the number of read before write operations that were required to process\r
-non-aligned host write commands during the reporting period. See Host Write Odd Start\r
-Commands and Host Write Odd End Commands. NAND Read Before Write operations have\r
-a detrimental effect on the overall performance of the device.</p></td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-</div>\r
-</div>\r
-</div>\r
-<div class="sect1">\r
<h2 id="_examples">EXAMPLES</h2>\r
<div class="sectionbody">\r
<div class="ulist"><ul>\r
<pre><code># nvme wdc vs-smart-add-log /dev/nvme0</code></pre>\r
</div></div>\r
</li>\r
+<li>\r
+<p>\r
+Has the program issue WDC vs-smart-add-log Vendor Unique Command for just the 0xCA log page :\r
+</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><code># nvme wdc vs-smart-add-log /dev/nvme0 -p 0xCA</code></pre>\r
+</div></div>\r
+</li>\r
+<li>\r
+<p>\r
+Has the program issue WDC vs-smart-add-log Vendor Unique Command for 0xC0 and 0xCA log pages :\r
+</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><code># nvme wdc vs-smart-add-log /dev/nvme0 -p 0xCA,0xC0</code></pre>\r
+</div></div>\r
+</li>\r
</ul></div>\r
</div>\r
</div>\r
<div id="footnotes"><hr /></div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 2019-01-11 13:56:35 MST\r
+Last updated\r
+ 2020-08-05 14:36:59 CDT\r
</div>\r
</div>\r
</body>\r