diff options
Diffstat (limited to '')
-rw-r--r-- | Documentation/nvme-wdc-vs-smart-add-log.1 | 421 |
1 files changed, 57 insertions, 364 deletions
diff --git a/Documentation/nvme-wdc-vs-smart-add-log.1 b/Documentation/nvme-wdc-vs-smart-add-log.1 index 5b3f8ec..4e9c186 100644 --- a/Documentation/nvme-wdc-vs-smart-add-log.1 +++ b/Documentation/nvme-wdc-vs-smart-add-log.1 @@ -2,12 +2,12 @@ .\" 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: 04/24/2020 +.\" Date: 10/20/2020 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" -.TH "NVME\-WDC\-VS\-SMART" "1" "04/24/2020" "NVMe" "NVMe Manual" +.TH "NVME\-WDC\-VS\-SMART" "1" "10/20/2020" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -33,12 +33,13 @@ nvme-wdc-vs-smart-add-log \- Send NVMe WDC vs\-smart\-add\-log Vendor Unique Com .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 @@ -47,7 +48,7 @@ On success it returns 0, error code otherwise\&. .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> @@ -56,6 +57,16 @@ Set the reporting format to \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 @@ -109,367 +120,49 @@ The statistical set accumulated during the entire lifetime of the device\&. 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 \{\ @@ -479,13 +172,13 @@ T} .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 |