diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
deleted file mode 100644
index 03471d7..0000000
--- a/.github/workflows/c-cpp.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-gname: C/C++ CI
-
-on:
- push:
- branches: [ master nvme-cli-monolithic ]
- pull_request:
- branches: [ master nvme-cli-monolithic ]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- - name: make
- run: sudo apt-get install gcc-10-powerpc* && make clean && make && make clean && make LD=powerpc64le-linux-gnu-ld CC=powerpc64le-linux-gnu-gcc-10 CFLAGS='-O2 -g -Wall -Wformat-security -Werror -m64 -mcpu=power8 -mtune=power8 -I -I/usr/powerpc64-linux-gnu/include/'
-
diff --git a/.github/workflows/meson.yml b/.github/workflows/meson.yml
new file mode 100644
index 0000000..0d6350f
--- /dev/null
+++ b/.github/workflows/meson.yml
@@ -0,0 +1,27 @@
+name: nvme-cli meson CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+ workflow_dispatch:
+
+jobs:
+ meson-build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: install libraries
+ run: sudo apt-get install libjson-c-dev libhugetlbfs-dev
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v1
+ # - name: install python dependencies
+ # run: |
+ # python -m pip install --upgrade pip
+ # pip install nose nose2
+ - uses: BSFishy/meson-build@v1.0.3
+ with:
+ setup-options: --werror
+ action: build
diff --git a/.gitignore b/.gitignore
index 8e5ae00..0745eff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,18 +4,15 @@ a.out
*.o
*~
*.swp
-NVME-VERSION-FILE
-nvme.spec
nvme-*.tar.gz
-version
+
+subprojects/*
+!subprojects/*.wrap
cscope.*
-/debian/files
-/debian/nvme-cli.debhelper.log
-/debian/nvme-cli.substvars
-/debian/nvme-cli
-
tests/__pycache__
tests/nvmetests
tests/*.pyc
+
+.build
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..e69de29
diff --git a/Documentation/Makefile b/Documentation/Makefile
deleted file mode 100644
index 9edae99..0000000
--- a/Documentation/Makefile
+++ /dev/null
@@ -1,265 +0,0 @@
-# Guard against environment variables
-MAN1_TXT =
-TECH_DOCS =
-ARTICLES =
-SP_ARTICLES =
-
-MAN1_TXT += $(filter-out \
- $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
- $(wildcard nvme-*.txt))
-MAN1_TXT += nvme.txt
-MAN_TXT = $(MAN1_TXT)
-MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
-MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
-
-DOC_HTML = $(MAN_HTML) $(OBSOLETE_HTML)
-
-API_DOCS =
-SP_ARTICLES += $(API_DOCS)
-SP_ARTICLES += $(TECH_DOCS)
-
-ifneq ($(findstring $(MAKEFLAGS),s),s)
-ifndef V
- QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@;
- QUIET_XMLTO = @echo ' ' XMLTO $@;
- QUIET_DB2TEXI = @echo ' ' DB2TEXI $@;
- QUIET_MAKEINFO = @echo ' ' MAKEINFO $@;
- QUIET_DBLATEX = @echo ' ' DBLATEX $@;
- QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
- QUIET_GEN = @echo ' ' GEN $@;
- QUIET_LINT = @echo ' ' LINT $@;
- QUIET_STDERR = 2> /dev/null
- QUIET_SUBDIR0 = +@subdir=
- QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
- $(MAKE) $(PRINT_DIR) -C $$subdir
- export V
-endif
-endif
-
-DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT))
-
-ASCIIDOC = asciidoc
-ASCIIDOC_EXTRA =
-ASCIIDOC_DOCBOOK = docbook
-ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA)
-TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
-MANPAGE_XSL = manpage-normal.xsl
-XMLTO = xmlto
-XMLTO_EXTRA = --skip-validation
-INSTALL ?= install
-RM ?= rm -f
-MAN_REPO = ../../nvme-manpages
-
-ASCIIDOC_HTML = xhtml11
-ASCIIDOC_CONF = -f asciidoc.conf
-
-ifdef USE_ASCIIDOCTOR
-ASCIIDOC = asciidoctor
-ASCIIDOC_CONF =
-ASCIIDOC_HTML = xhtml5
-ASCIIDOC_DOCBOOK = docbook5
-ASCIIDOC_EXTRA += -acompat-mode
-ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
-ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
-ASCIIDOC_EXTRA += -amansource='NVMe'
-ASCIIDOC_EXTRA += -amanmanual='NVMe Manual'
-endif
-
-ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF)
-TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
-
-MAKEINFO = makeinfo
-INSTALL_INFO = install-info
-DOCBOOK2X_TEXI = docbook2x-texi
-DBLATEX = dblatex
-ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex
-ifndef PERL_PATH
- PERL_PATH = /usr/bin/perl
-endif
-
-ifdef DOCBOOK_XSL_172
-MANPAGE_XSL = manpage-1.72.xsl
-else
- ifndef ASCIIDOC_ROFF
- endif
-endif
-ifdef MAN_BOLD_LITERAL
-XMLTO_EXTRA += -m manpage-bold-literal.xsl
-endif
-ifdef DOCBOOK_SUPPRESS_SP
-XMLTO_EXTRA += -m manpage-suppress-sp.xsl
-endif
-
-ifndef MAN_BASE_URL
-MAN_BASE_URL = file://$(htmldir)/
-endif
-XMLTO_EXTRA +=
-
-ifdef GNU_ROFF
-XMLTO_EXTRA +=
-endif
-
-SHELL_PATH ?= $(SHELL)
-# Shell quote;
-SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
-
-ifdef DEFAULT_PAGER
-DEFAULT_PAGER_SQ = $(subst ','\'',$(DEFAULT_PAGER))
-endif
-
-ifdef DEFAULT_EDITOR
-DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR))
-endif
-
-QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
-QUIET_SUBDIR1 =
-
-ifneq ($(findstring $(MAKEFLAGS),w),w)
-PRINT_DIR = --no-print-directory
-else # "make -w"
-NO_SUBDIR = :
-endif
-
-DESTDIR =
-PREFIX ?= /usr/local
-
-all: man html
-
-html: $(DOC_HTML)
-
-man: man1
-man1: $(DOC_MAN1)
-
-install-no-build:
- $(INSTALL) -d -m 755 $(DESTDIR)$(PREFIX)/share/man/man1
- $(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(PREFIX)/share/man/man1
-
-install: install-man
-
-install-man: man
- $(INSTALL) -d -m 755 $(DESTDIR)$(PREFIX)/share/man/man1
- $(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(PREFIX)/share/man/man1
-
-docdep_prereqs = \
- cmd-list.made $(cmds_txt)
-
-doc.dep : $(docdep_prereqs) $(wildcard *.txt) build-docdep.perl
- $(QUIET_GEN)$(RM) $@+ $@ && \
- $(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
- mv $@+ $@
-
--include doc.dep
-
-cmds_txt = cmds-ancillaryinterrogators.txt \
- cmds-ancillarymanipulators.txt \
- cmds-mainporcelain.txt \
- cmds-plumbinginterrogators.txt \
- cmds-plumbingmanipulators.txt \
- cmds-synchingrepositories.txt \
- cmds-synchelpers.txt \
- cmds-purehelpers.txt \
- cmds-foreignscminterface.txt
-
-$(cmds_txt): cmd-list.made
-
-cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
- $(QUIET_GEN)$(RM) $@ && \
- $(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
- date >$@
-
-clean:
- $(RM) *.xml *.xml+ *.html+
- $(RM) *.texi *.texi+ *.texi++ nvme.info nvmeman.info
- $(RM) *.pdf
- $(RM) howto-index.txt howto/*.html doc.dep
- $(RM) technical/*.html technical/api-index.txt
- $(RM) $(cmds_txt) *.made
- $(RM) manpage-base-url.xsl
- $(RM) *~
-
-clobber: clean
- $(RM) *.html *.1
-
-%.1 : %.xml
- $(QUIET_XMLTO)$(RM) $@ && \
- $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
-
-%.xml : %.txt
- $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
- $(TXT_TO_XML) -d manpage -o $@+ $< && \
- mv $@+ $@
-
-user-manual.xml: user-manual.txt user-manual.conf
- $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
- $(TXT_TO_XML) -d article -o $@+ $< && \
- mv $@+ $@
-
-technical/api-index.txt: technical/api-index-skel.txt \
- technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
- $(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh
-
-XSLT = docbook.xsl
-XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
-
-nvme.info: user-manual.texi
- $(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
-
-user-manual.texi: user-manual.xml
- $(QUIET_DB2TEXI)$(RM) $@+ $@ && \
- $(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
- $(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
- rm $@++ && \
- mv $@+ $@
-
-user-manual.pdf: user-manual.xml
- $(QUIET_DBLATEX)$(RM) $@+ $@ && \
- $(DBLATEX) -o $@+ -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty $< && \
- mv $@+ $@
-
-nvmeman.texi: $(MAN_XML) cat-texi.perl
- $(QUIET_DB2TEXI)$(RM) $@+ $@ && \
- ($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
- --to-stdout $(xml) &&) true) > $@++ && \
- $(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
- rm $@++ && \
- mv $@+ $@
-
-nvmeman.info: nvmeman.texi
- $(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
-
-$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
- $(QUIET_DB2TEXI)$(RM) $@+ $@ && \
- $(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
- mv $@+ $@
-
-howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
- $(QUIET_GEN)$(RM) $@+ $@ && \
- '$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@+ && \
- mv $@+ $@
-
-WEBDOC_DEST = /pub/software/scm/nvme/docs
-
-$(MAN_HTML): %.html : %.txt
- $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
- $(TXT_TO_HTML) -d manpage -o $@+ $< && \
- mv $@+ $@
-
-quick-install: quick-install-man
-
-$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
- $(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
-
-install-webdoc : html
- '$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
-
-require-manrepo::
- @if test ! -d $(MAN_REPO); \
- then echo "nvme-manpages repository must exist at $(MAN_REPO)"; exit 1; fi
-
-quick-install-man: require-manrepo
- '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(mandir)
-
-print-man1:
- @for i in $(MAN1_TXT); do echo $$i; done
-
-.PHONY: FORCE
diff --git a/Documentation/cmd-plugins.txt b/Documentation/cmd-plugins.txt
new file mode 100644
index 0000000..4e66cf1
--- /dev/null
+++ b/Documentation/cmd-plugins.txt
@@ -0,0 +1,200 @@
+linknvme:nvme-intel-id-ctrl[1]::
+ Intel - NVMe Identify Controller
+
+linknvme:nvme-intel-internal-log[1]::
+ Retrieve Intel device's internal log and save to file
+
+linknvme:nvme-intel-lat-stats[1]::
+ Retrieve NVMe Identify Controller, return result and structure
+
+linknvme:nvme-intel-market-name[1]::
+ Intel vendor specific marketing name log page
+
+linknvme:nvme-intel-smart-log-add[1]::
+ NVMe Intel Additional SMART log page
+
+linknvme:nvme-intel-temp-stats[1]::
+ NVMe Intel Additional SMART log page for temp stats
+
+linknvme:nvme-huawei-id-ctrl[1]::
+ NVMe huawei Identify Controller
+
+linknvme:nvme-huawei-list[1]::
+ List all recognized Huawei NVMe devices
+
+linknvme:nvme-dera-stat[1]::
+ NVMe Dera Device status and Additional SMART log page request
+
+linknvme:nvme-micron-clear-pcie-errors[1]::
+ Clears correctable PCIe correctable errors of given Micron device
+
+linknvme:nvme-micron-internal-log[1]::
+ Retrieve Micron device's internal logs and save to given zip file
+
+linknvme:nvme-micron-nand-stats[1]::
+ Retrieves NAND statistics of given micron device
+
+linknvme:nvme-micron-pcie-stats[1]::
+ Retrieves pcie error statistics for given micron device
+
+linknvme:nvme-micron-selective-download[1]::
+ Performs selective firmware download
+
+linknvme:nvme-micron-smart-add-log[1]::
+ Retrieves NAND statistics
+
+linknvme:nvme-micron-temperature-stats[1]::
+ Retrieves temperature information of given micron device
+
+linknvme:nvme-netapp-ontapdevices[1]::
+ Display information about ONTAP devices
+
+linknvme:nvme-netapp-smdevices[1]::
+ Display information for each NVMe path to an E-Series volume
+
+linknvme:nvme-toshiba-clear-pcie-correctable-errors[1]::
+ Reset the PCIe correctable errors count to zero
+
+linknvme:nvme-toshiba-vs-internal-log[1]::
+ Retrieve a Toshiba device's vendor specific internal log
+
+linknvme:nvme-toshiba-vs-smart-add-log[1]::
+ Retrieve a Toshiba device's vendor specific extended SMART log page
+
+linknvme:nvme-transcend-badblock[1]::
+ Retrieve Transcend NVMe device's bad blocks
+
+linknvme:nvme-transcend-healthvalue[1]::
+ Use NVMe SMART table to analyse the health value of Transcend device
+
+linknvme:nvme-virtium-show-identify[1]::
+ Show a complete detail of identify device information in json format
+
+linknvme:nvme-virtium-save-smart-to-vtview-log[1]::
+ Periodically save smart attributes into a log file
+
+linknvme:nvme-wdc-cap-diag[1]::
+ Retrieve WDC device's diagnostic log and save to file
+
+linknvme:nvme-wdc-capabilities[1]::
+ Display WDC plugin command capabilities
+
+linknvme:nvme-wdc-clear-assert-dump[1]::
+ Clears the assert dump (if present)
+
+linknvme:nvme-wdc-clear-fw-activate-history[1]::
+ Clears the firmware activate history table
+
+linknvme:nvme-wdc-clear-pcie-corr[1]::
+ Clears the pcie correctable errors field
+
+linknvme:nvme-wdc-clear-pcie-correctable-errors[1]::
+ Clears the pcie correctable errors returned in the smart-log-add command
+
+linknvme:nvme-wdc-cloud-SSD-plugin-version[1]::
+ Display WDC plugin Cloud SSD Plugin Version
+
+linknvme:nvme-wdc-drive-essentials[1]::
+ Retrieve WDC device's drive essentials bin files
+
+linknvme:nvme-wdc-drive-log[1]::
+ Retrieve WDC device's drive log and save to file
+
+linknvme:nvme-wdc-drive-resize[1]::
+ Send NVMe WDC Resize Vendor Unique Command
+
+linknvme:nvme-wdc-enc-get-log[1]::
+ Send NVMe WDC enc-get-log Vendor Unique Command
+
+linknvme:nvme-wdc-get-crash-dump[1]::
+ Retrieve WDC device's crash dump
+
+linknvme:nvme-wdc-get-drive-status[1]::
+ Send the NVMe WDC get-drive-status command
+
+linknvme:nvme-wdc-get-latency-monitor-log[1]::
+ Display latency monitor log page data in human readable format
+
+linknvme:nvme-wdc-get-pfail-dump[1]::
+ Retrieve WDC device's pfail crash dump
+
+linknvme:nvme-wdc-id-ctrl[1]::
+ Send NVMe Identify Controller, return result and structure
+
+linknvme:nvme-wdc-log-page-directory[1]::
+ Retrieves the list of Log IDs supported by the drive
+
+linknvme:nvme-wdc-namespace-resize[1]::
+ Resizes the device's namespace
+
+linknvme:nvme-wdc-purge-monitor[1]::
+ Send NVMe WDC Purge-Monitor Vendor Unique Command
+
+linknvme:nvme-wdc-purge[1]::
+ Send NVMe WDC Purge Vendor Unique Command
+
+linknvme:nvme-wdc-smart-add-log[1]::
+ Send NVMe WDC smart add log Vendor Unique Command
+
+linknvme:nvme-wdc-vs-drive-info[1]::
+ Send the NVMe WDC vs-drive-info command
+
+linknvme:nvme-wdc-vs-error-reason-identifier[1]::
+ Retrieve WDC device's telemetry log error reason identifier field
+
+linknvme:nvme-wdc-vs-fw-activate-history[1]::
+ Execute NVMe WDC vs-fw-activate-history Vendor Unique Command
+
+linknvme:nvme-wdc-vs-internal-log[1]::
+ Retrieve WDC device's internal firmware log and save to file
+
+linknvme:nvme-wdc-vs-nand-stats[1]::
+ Send NVMe WDC vs-nand-stats Vendor Unique Command
+
+linknvme:nvme-wdc-vs-telemetry-controller-option[1]::
+ Disable/Enable the controller initiated option of the telemetry log page
+
+linknvme:nvme-wdc-vs-temperature-stats[1]::
+ Display temperature-related statistics
+
+linknvme:nvme-zns-changed-zone-list[1]::
+ Retrieve Changed Zone log for the given device
+
+linknvme:nvme-zns-close-zone[1]::
+ Closes one or all zones
+
+linknvme:nvme-zns-finish-zone[1]::
+ Finishes one or all zones
+
+linknvme:nvme-zns-id-ctrl[1]::
+ Send NVMe Zoned Command Set Identify Controller
+
+linknvme:nvme-zns-id-ns[1]::
+ Send NVMe Zoned Command Set Identify Namespace
+
+linknvme:nvme-zns-offline-zone[1]::
+ Offlines one or all zones
+
+linknvme:nvme-zns-open-zone[1]::
+ Opens one or all zones
+
+linknvme:nvme-zns-report-zones[1]::
+ Retrieve and display the Report Zones data structure
+
+linknvme:nvme-zns-reset-zone[1]::
+ Resets one or all zones
+
+linknvme:nvme-zns-set-zone-desc[1]::
+ Set extended descriptor data for a zone
+
+linknvme:nvme-zns-zone-append[1]::
+ Send an NVMe write command, provide results
+
+linknvme:nvme-zns-zone-mgmt-recv[1]::
+ Zone Management Receive command
+
+linknvme:nvme-zns-zone-mgmt-send[1]::
+ Zone Management Send command
+
+linknvme:nvme-zns-zrwa-flush-zone[1]::
+ Flush LBAs associated with a ZRWA to a zone
diff --git a/Documentation/cmds-main.txt b/Documentation/cmds-main.txt
index 46df03d..ab8ee3b 100644
--- a/Documentation/cmds-main.txt
+++ b/Documentation/cmds-main.txt
@@ -10,7 +10,7 @@ linknvme:nvme-error-log[1]::
linknvme:nvme-flush[1]::
Submit flush
-linknvme:nvme-dms[1]::
+linknvme:nvme-dsm[1]::
Submit Data Set Management
linknvme:nvme-format[1]::
@@ -160,6 +160,9 @@ linknvme:nvme-connect-all[1]::
linknvme:nvme-connect[1]::
Connect to an NVMe-over-Fabrics subsystem
+linknvme:nvme-dim[1]::
+ Send Discovery Information Management command to a Discovery Controller
+
linknvme:nvme-disconnect[1]::
Disconnect from an NVMe-over-Fabrics subsystem
@@ -168,3 +171,102 @@ linknvme:nvme-disconnect-all[1]::
linknvme:nvme-get-property[1]::
Reads and shows NVMe-over-Fabrics controller property
+
+linknvme:nvme-media-unit-stat-log[1]::
+ Retrieve and show the configuration and wear of media units
+
+linknvme:nvme-supported-cap-config-log[1]::
+ Retrieve and show the list of Supported Capacity Configuration Descriptors
+
+linknvme:nvme-boot-part-log[1]::
+ Retrieve Boot Partition Log
+
+linknvme:nvme-capacity-mgmt[1]::
+ Capacity Management Command
+
+linknvme:nvme-check-dhchap-key[1]::
+ Generate NVMeoF DH-HMAC-CHAP host key
+
+linknvme:nvme-check-tls-key[1]::
+ Validate NVMeoF TLS PSK
+
+linknvme:nvme-cmdset-ind-id-ns[1]::
+ I/O Command Set Independent Identify Namespace
+
+linknvme:nvme-endurance-event-agg-log[1]::
+ Retrieve Endurance Group Event Aggregate Log
+
+linknvme:nvme-fid-support-effects-log[1]::
+ Retrieve FID Support and Effects log
+
+linknvme:nvme-gen-dhchap-key[1]::
+ Generate NVMeoF DH-HMAC-CHAP host key
+
+linknvme:nvme-gen-hostnqn[1]::
+ Generate NVMeoF host NQN
+
+linknvme:nvme-gen-tls-key[1]::
+ Generate NVMeoF TLS PSK
+
+linknvme:nvme-get-lba-status[1]::
+ Get LBA Status command
+
+linknvme:nvme-id-domain[1]::
+ NVMe Identify Domain List
+
+linknvme:nvme-id-ns-lba-format[1]::
+ NVMe Identify Namespace for the specified LBA Format index
+
+linknvme:nvme-lba-status-log[1]::
+ Retrieve LBA Status Information Log
+
+linknvme:nvme-list-endgrp[1]::
+ NVMe Identify Endurance Group List
+
+linknvme:nvme-ns-rescan[1]::
+ Rescans the NVME namespaces
+
+linknvme:nvme-nvm-id-ctrl[1]::
+ NVMe Identify Controller NVM Command Set
+
+linknvme:nvme-nvm-id-ns[1]::
+ NVMe Identify Namespace NVM Command Set
+
+linknvme:nvme-nvm-id-ns-lba-format[1]::
+ NVMe Identify Namespace NVM Command Set for the specified LBA Format index
+
+linknvme:nvme-persistent-event-log[1]::
+ Retrieve Presistent Event Log
+
+linknvme:nvme-predictable-lat-log[1]::
+ Retrieve Predictable Latency per Nvmset Log
+
+linknvme:nvme-pred-lat-event-agg-log[1]::
+ Retrieve Predictable Latency Event Aggregate Log
+
+linknvme:nvme-primary-ctrl-caps[1]::
+ NVMe Identify Primary Controller Capabilities
+
+linknvme:nvme-reset[1]::
+ Resets the controller
+
+linknvme:nvme-rpmb[1]::
+ Replay Protection Memory Block commands
+
+linknvme:nvme-sanitize-log[1]::
+ Retrieve sanitize log
+
+linknvme:nvme-set-property[1]::
+ Set a property and show the resulting value
+
+linknvme:nvme-show-hostnqn[1]::
+ Show NVMeoF host NQN
+
+linknvme:nvme-subsystem-reset[1]::
+ Resets the subsystem
+
+linknvme:nvme-supported-log-pages[1]::
+ Retrieve the Supported Log pages details
+
+linknvme:nvme-verify[1]::
+ verify command
diff --git a/Documentation/meson.build b/Documentation/meson.build
new file mode 100644
index 0000000..a12eec4
--- /dev/null
+++ b/Documentation/meson.build
@@ -0,0 +1,257 @@
+adoc_sources = [
+ 'nvme',
+ 'nvme-admin-passthru',
+ 'nvme-ana-log',
+ 'nvme-attach-ns',
+ 'nvme-boot-part-log',
+ 'nvme-capacity-mgmt',
+ 'nvme-changed-ns-list-log',
+ 'nvme-cmdset-ind-id-ns',
+ 'nvme-compare',
+ 'nvme-connect',
+ 'nvme-connect-all',
+ 'nvme-copy',
+ 'nvme-create-ns',
+ 'nvme-delete-ns',
+ 'nvme-dera-stat',
+ 'nvme-detach-ns',
+ 'nvme-device-self-test',
+ 'nvme-dim',
+ 'nvme-dir-receive',
+ 'nvme-dir-send',
+ 'nvme-disconnect',
+ 'nvme-disconnect-all',
+ 'nvme-discover',
+ 'nvme-dsm',
+ 'nvme-effects-log',
+ 'nvme-endurance-event-agg-log',
+ 'nvme-endurance-log',
+ 'nvme-error-log',
+ 'nvme-fid-support-effects-log',
+ 'nvme-mi-cmd-support-effects-log',
+ 'nvme-flush',
+ 'nvme-format',
+ 'nvme-fw-commit',
+ 'nvme-fw-download',
+ 'nvme-fw-log',
+ 'nvme-gen-hostnqn',
+ 'nvme-get-feature',
+ 'nvme-get-lba-status',
+ 'nvme-get-log',
+ 'nvme-get-ns-id',
+ 'nvme-get-property',
+ 'nvme-help',
+ 'nvme-huawei-id-ctrl',
+ 'nvme-huawei-list',
+ 'nvme-id-ctrl',
+ 'nvme-id-domain',
+ 'nvme-id-iocs',
+ 'nvme-id-ns',
+ 'nvme-id-nvmset',
+ 'nvme-intel-id-ctrl',
+ 'nvme-intel-internal-log',
+ 'nvme-intel-lat-stats',
+ 'nvme-intel-market-name',
+ 'nvme-intel-smart-log-add',
+ 'nvme-intel-temp-stats',
+ 'nvme-io-passthru',
+ 'nvme-lba-status-log',
+ 'nvme-list',
+ 'nvme-list-ctrl',
+ 'nvme-list-endgrp',
+ 'nvme-list-ns',
+ 'nvme-list-subsys',
+ 'nvme-lockdown',
+ 'nvme-micron-clear-pcie-errors',
+ 'nvme-micron-internal-log',
+ 'nvme-micron-nand-stats',
+ 'nvme-micron-pcie-stats',
+ 'nvme-micron-selective-download',
+ 'nvme-micron-smart-add-log',
+ 'nvme-micron-temperature-stats',
+ 'nvme-netapp-ontapdevices',
+ 'nvme-netapp-smdevices',
+ 'nvme-ns-descs',
+ 'nvme-ns-rescan',
+ 'nvme-nvm-id-ctrl',
+ 'nvme-ocp-latency-monitor-log',
+ 'nvme-ocp-smart-add-log',
+ 'nvme-persistent-event-log',
+ 'nvme-pred-lat-event-agg-log',
+ 'nvme-predictable-lat-log',
+ 'nvme-primary-ctrl-caps',
+ 'nvme-read',
+ 'nvme-reset',
+ 'nvme-resv-acquire',
+ 'nvme-resv-notif-log',
+ 'nvme-resv-register',
+ 'nvme-resv-release',
+ 'nvme-resv-report',
+ 'nvme-rpmb',
+ 'nvme-sanitize',
+ 'nvme-sanitize-log',
+ 'nvme-security-recv',
+ 'nvme-security-send',
+ 'nvme-self-test-log',
+ 'nvme-set-feature',
+ 'nvme-set-property',
+ 'nvme-show-hostnqn',
+ 'nvme-show-regs',
+ 'nvme-smart-log',
+ 'nvme-subsystem-reset',
+ 'nvme-supported-log-pages',
+ 'nvme-telemetry-log',
+ 'nvme-toshiba-clear-pcie-correctable-errors',
+ 'nvme-toshiba-vs-internal-log',
+ 'nvme-toshiba-vs-smart-add-log',
+ 'nvme-transcend-badblock',
+ 'nvme-transcend-healthvalue',
+ 'nvme-verify',
+ 'nvme-virtium-save-smart-to-vtview-log',
+ 'nvme-virtium-show-identify',
+ 'nvme-wdc-cap-diag',
+ 'nvme-wdc-capabilities',
+ 'nvme-wdc-clear-assert-dump',
+ 'nvme-wdc-clear-fw-activate-history',
+ 'nvme-wdc-clear-pcie-correctable-errors',
+ 'nvme-wdc-cloud-SSD-plugin-version',
+ 'nvme-wdc-drive-essentials',
+ 'nvme-wdc-drive-log',
+ 'nvme-wdc-drive-resize',
+ 'nvme-wdc-enc-get-log',
+ 'nvme-wdc-get-crash-dump',
+ 'nvme-wdc-get-dev-capabilities-log',
+ 'nvme-wdc-get-drive-status',
+ 'nvme-wdc-get-error-recovery-log',
+ 'nvme-wdc-get-latency-monitor-log',
+ 'nvme-wdc-get-pfail-dump',
+ 'nvme-wdc-get-unsupported-reqs-log',
+ 'nvme-wdc-id-ctrl',
+ 'nvme-wdc-log-page-directory',
+ 'nvme-wdc-namespace-resize',
+ 'nvme-wdc-purge',
+ 'nvme-wdc-purge-monitor',
+ 'nvme-wdc-vs-drive-info',
+ 'nvme-wdc-vs-error-reason-identifier',
+ 'nvme-wdc-vs-fw-activate-history',
+ 'nvme-wdc-vs-internal-log',
+ 'nvme-wdc-vs-nand-stats',
+ 'nvme-wdc-vs-smart-add-log',
+ 'nvme-wdc-vs-telemetry-controller-option',
+ 'nvme-wdc-vs-temperature-stats',
+ 'nvme-write',
+ 'nvme-write-uncor',
+ 'nvme-write-zeroes',
+ 'nvme-zns-changed-zone-list',
+ 'nvme-zns-close-zone',
+ 'nvme-zns-finish-zone',
+ 'nvme-zns-id-ctrl',
+ 'nvme-zns-id-ns',
+ 'nvme-zns-offline-zone',
+ 'nvme-zns-open-zone',
+ 'nvme-zns-report-zones',
+ 'nvme-zns-reset-zone',
+ 'nvme-zns-set-zone-desc',
+ 'nvme-zns-zone-append',
+ 'nvme-zns-zone-mgmt-recv',
+ 'nvme-zns-zone-mgmt-send',
+]
+
+adoc_includes = [
+ 'cmd-plugins.txt',
+ 'cmds-main.txt',
+]
+
+want_docs = get_option('docs')
+want_docs_build = get_option('docs-build')
+if want_docs != 'false'
+ mandir = join_paths(get_option('mandir'), 'man1')
+ htmldir = join_paths(get_option('htmldir'), 'nvme')
+
+ asciidoctor = find_program('asciidoc', required : false)
+ if want_docs_build and asciidoctor.found()
+ # Build documentation before installing
+
+ foreach file : adoc_includes
+ configure_file(
+ input: file,
+ output: file,
+ copy: true)
+ endforeach
+
+ # man pages
+ if want_docs == 'all' or want_docs == 'man'
+ xmlto = find_program('xmlto', required: false)
+ if xmlto.found()
+ foreach adoc : adoc_sources
+ input = adoc + '.txt'
+ subst = configure_file(
+ input: adoc + '.txt',
+ output: adoc + '.msubst',
+ configuration: substs)
+ xml = custom_target(
+ adoc.underscorify() + '_xml',
+ input: subst,
+ output: '@BASENAME@.xml',
+ command: [asciidoctor,
+ '-f', files('asciidoc.conf'),
+ '-b', 'docbook',
+ '-d', 'manpage',
+ '-o', '@OUTPUT@',
+ '@INPUT@'],
+ )
+ custom_target(
+ adoc.underscorify() + '_man',
+ input: xml,
+ output: '@BASENAME@.1',
+ command: [xmlto,
+ '-m', files('manpage-normal.xsl'),
+ '-o', '@OUTDIR@',
+ '--skip-validation',
+ 'man',
+ '@INPUT@'],
+ install: true,
+ install_dir: mandir)
+ endforeach
+ endif
+ endif
+
+ # html
+ if want_docs == 'all' or want_docs == 'html'
+ foreach adoc : adoc_sources
+ input = adoc + '.txt'
+ subst = configure_file(
+ input: adoc + '.txt',
+ output: adoc + '.hsubst',
+ configuration: substs)
+ custom_target(
+ adoc.underscorify() + '_html',
+ input: subst,
+ output: '@BASENAME@.html',
+ command: [asciidoctor,
+ '-f', files('asciidoc.conf'),
+ '-b', 'xhtml11',
+ '-d', 'manpage',
+ '-o', '@OUTPUT@',
+ '@INPUT@'],
+ install: true,
+ install_dir: htmldir)
+ endforeach
+ endif
+
+ else
+ # asciidoctor not found, install pre compiled documetationx
+
+ foreach adoc : adoc_sources
+ if want_docs == 'all' or want_docs == 'man'
+ man = files(adoc + '.1')
+ install_data(man, install_dir: mandir)
+ endif
+ if want_docs == 'all' or want_docs == 'html'
+ html = files(adoc + '.html')
+ install_data(html, install_dir: htmldir)
+ endif
+ endforeach
+
+ endif
+endif
diff --git a/Documentation/nvme-admin-passthru.1 b/Documentation/nvme-admin-passthru.1
index fecabb4..1beb822 100644
--- a/Documentation/nvme-admin-passthru.1
+++ b/Documentation/nvme-admin-passthru.1
@@ -2,12 +2,12 @@
.\" Title: nvme-admin-passthru
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-ADMIN\-PASSTHR" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-ADMIN\-PASSTHR" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-admin-passthru.html b/Documentation/nvme-admin-passthru.html
index 064f852..b6b7675 100644
--- a/Documentation/nvme-admin-passthru.html
+++ b/Documentation/nvme-admin-passthru.html
@@ -4,7 +4,7 @@
-
+
nvme-admin-passthru(1)
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme gen-dhchap-key [--hmac=<hmac-id> | -h <hmac-id>]
+ [--secret=<secret> | -s <secret> ]
+ [--key-length=<len> | -l <len> ]
+ [--nqn=<host-nqn> | -n <host-nqn> ]
+
+
+
+
+
+
DESCRIPTION
+
+
Generate a base64-encoded DH-HMAC-CHAP host key in the form:
+DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:
+and prints it to stdout.
+
+
+
+
OPTIONS
+
+
+-
+-h <hmac-id>
+
+-
+--hmac=<hmac-id>
+
+-
+
+ Select a HMAC algorithm to use. Possible values are:
+ 0 - No HMAC algorithm
+ 1 - SHA-256
+ 2 - SHA-384
+ 3 - SHA-512
+
+
+-
+-s <secret>
+
+-
+--secret=<secret>
+
+-
+
+ Secret value (in hexadecimal) to be used for the key. If none are
+ provided a random value is used.
+
+
+-
+-l <len>
+
+-
+--key-length=<len>
+
+-
+
+ Length of the resulting key. Possible values are 32, 48, or 64.
+
+
+-
+-n <hostnqn>
+
+-
+--nqn=<hostnqn>
+
+-
+
+ Host-NQN to be used for the transformation. This parameter is only
+ valid if a non-zero HMAC function has been specified.
+
+
+
+
+
+
+
+
NVME
+
+
Part of the nvme-user suite
+
+
+
+
+
+
+
diff --git a/Documentation/nvme-gen-dhchap-key.txt b/Documentation/nvme-gen-dhchap-key.txt
new file mode 100644
index 0000000..79e8ed5
--- /dev/null
+++ b/Documentation/nvme-gen-dhchap-key.txt
@@ -0,0 +1,52 @@
+nvme-gen-dhchap-key(1)
+======================
+
+NAME
+----
+nvme-gen-dhchap-key - Generate a host DH-HMAC-CHAP key
+
+SYNOPSIS
+--------
+[verse]
+'nvme gen-dhchap-key' [--hmac= | -h ]
+ [--secret= | -s ]
+ [--key-length= | -l ]
+ [--nqn= | -n ]
+
+DESCRIPTION
+-----------
+Generate a base64-encoded DH-HMAC-CHAP host key in the form:
+DHHC-1:00:ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n:
+and prints it to stdout.
+
+OPTIONS
+-------
+-h ::
+--hmac=::
+ Select a HMAC algorithm to use. Possible values are:
+ 0 - No HMAC algorithm
+ 1 - SHA-256
+ 2 - SHA-384
+ 3 - SHA-512
+
+-s ::
+--secret=::
+ Secret value (in hexadecimal) to be used for the key. If none are
+ provided a random value is used.
+
+-l ::
+--key-length=::
+ Length of the resulting key. Possible values are 32, 48, or 64.
+
+-n ::
+--nqn=::
+ Host-NQN to be used for the transformation. This parameter is only
+ valid if a non-zero HMAC function has been specified.
+
+EXAMPLES
+--------
+No Examples
+
+NVME
+----
+Part of the nvme-user suite
diff --git a/Documentation/nvme-gen-hostnqn.1 b/Documentation/nvme-gen-hostnqn.1
index 9aee601..79a586f 100644
--- a/Documentation/nvme-gen-hostnqn.1
+++ b/Documentation/nvme-gen-hostnqn.1
@@ -2,12 +2,12 @@
.\" Title: nvme-gen-hostnqn
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-GEN\-HOSTNQN" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-GEN\-HOSTNQN" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-gen-hostnqn.html b/Documentation/nvme-gen-hostnqn.html
index 2b43185..1e06595 100644
--- a/Documentation/nvme-gen-hostnqn.html
+++ b/Documentation/nvme-gen-hostnqn.html
@@ -4,7 +4,7 @@
-
+
nvme-gen-hostnqn(1)
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme id-ns <device> [--uuid-index=<uuid-index> | -U <uuid_index>]
+ [--lba-format-index=<lba_format_index> | -i <lba_format_index>]
+ [-v | --verbose]
+ [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+
DESCRIPTION
+
+
For the NVMe device given, sends an identify namespace for
+the specified LBA Format index command and provides the result
+that is include capability field only and returned structure.
+
The <device> parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
+
On success, the structure may be returned in one of several ways depending
+on the option flags; the structure may be parsed by the program or the
+raw buffer may be printed to stdout.
+
+
+
+
OPTIONS
+
+
+-
+-U <uuid-index>
+
+-
+--uuid-index=<uuid-index>
+
+-
+
+ UUID Index of the feature
+
+
+-
+-i <lba_format_index>
+
+-
+--lba-format-index=<lba_format_index>
+
+-
+
+ This field specifies the index into the LBA Format list identifying
+ the LBA Format capabilities that are to be returned
+
+
+-
+-v
+
+-
+--verbose
+
+-
+
+ Increase the information detail in the output.
+
+
+-
+-o <format>
+
+-
+--output-format=<format>
+
+-
+
+ Set the reporting format to normal, json, or
+ binary. Only one output format can be used at a time.
+
+
+
+
+
+
+
EXAMPLES
+
+
+-
+
+Has the program interpret the returned buffer and display the known
+fields in a human readable format:
+
+
+
+
# nvme id-ns-lba-format /dev/nvme0n1 -i 0
+
+
+-
+
+Have the program return the raw structure in binary:
+
+
+
+
# nvme id-ns-lba-format /dev/nvme0n1 -i 0 -o binary > id_ns.raw
+# nvme id-ns-lba-format /dev/nvme0n1 -i 0 --output-format=binary > id_ns.raw
+
+It is probably a bad idea to not redirect stdout when using this mode.
+
+-
+
+Alternatively you may want to send the data to another program that
+can parse the raw buffer.
+
+
+
+
# nvme id-ns-lba-format /dev/nvme0n1 -i 0 --raw-binary | nvme_parse_id_ns
+
+The parse program in the above example can be a program that shows the
+structure in a way you like. The following program is such an example
+that will parse it and can accept the output through a pipe, '|'
,
+as shown in the above example, or you can 'cat'
a saved output buffer
+to it.
+
+
+
+
+
/* File: nvme_parse_id_ns_lba_format.c */
+
+#include <linux/nvme.h>
+#include <stdio.h>
+#include <unistd.h>
+
+int main(int argc, char **argv)
+{
+ unsigned char buf[sizeof(struct nvme_id_ns)];
+ struct nvme_id_ns *ns = (struct nvme_id_ns *)buf;
+
+ if (read(STDIN_FILENO, buf, sizeof(buf)))
+ return 1;
+
+ printf("nsze : %#llx\n", ns->nlbaf);
+ printf("ncap : %#llx\n", ns->mc);
+ return 0;
+}
+
+
+
+
+
NVME
+
+
Part of the nvme-user suite
+
+
+
+
+
+
+
diff --git a/Documentation/nvme-id-ns-lba-format.txt b/Documentation/nvme-id-ns-lba-format.txt
new file mode 100644
index 0000000..32df2f6
--- /dev/null
+++ b/Documentation/nvme-id-ns-lba-format.txt
@@ -0,0 +1,102 @@
+nvme-id-ns-lba-format(1)
+========================
+
+NAME
+----
+nvme-id-ns-lba-format - Send NVMe Identify Namespace for the specified LBA Format index, display structure
+
+SYNOPSIS
+--------
+[verse]
+'nvme id-ns' [--uuid-index= | -U ]
+ [--lba-format-index= | -i ]
+ [-v | --verbose]
+ [--output-format= | -o ]
+
+DESCRIPTION
+-----------
+For the NVMe device given, sends an identify namespace for
+the specified LBA Format index command and provides the result
+that is include capability field only and returned structure.
+
+The parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
+
+On success, the structure may be returned in one of several ways depending
+on the option flags; the structure may be parsed by the program or the
+raw buffer may be printed to stdout.
+
+OPTIONS
+-------
+-U ::
+--uuid-index=::
+ UUID Index of the feature
+
+-i ::
+--lba-format-index=::
+ This field specifies the index into the LBA Format list identifying
+ the LBA Format capabilities that are to be returned
+
+-v::
+--verbose::
+ Increase the information detail in the output.
+
+-o ::
+--output-format=::
+ Set the reporting format to 'normal', 'json', or
+ 'binary'. Only one output format can be used at a time.
+
+EXAMPLES
+--------
+* Has the program interpret the returned buffer and display the known
+fields in a human readable format:
++
+------------
+# nvme id-ns-lba-format /dev/nvme0n1 -i 0
+------------
++
+* Have the program return the raw structure in binary:
++
+------------
+# nvme id-ns-lba-format /dev/nvme0n1 -i 0 -o binary > id_ns.raw
+# nvme id-ns-lba-format /dev/nvme0n1 -i 0 --output-format=binary > id_ns.raw
+------------
++
+It is probably a bad idea to not redirect stdout when using this mode.
+
+* Alternatively you may want to send the data to another program that
+can parse the raw buffer.
++
+------------
+# nvme id-ns-lba-format /dev/nvme0n1 -i 0 --raw-binary | nvme_parse_id_ns
+------------
++
+The parse program in the above example can be a program that shows the
+structure in a way you like. The following program is such an example
+that will parse it and can accept the output through a pipe, `'|'`,
+as shown in the above example, or you can `'cat'` a saved output buffer
+to it.
+------------
+/* File: nvme_parse_id_ns_lba_format.c */
+
+#include
+#include
+#include
+
+int main(int argc, char **argv)
+{
+ unsigned char buf[sizeof(struct nvme_id_ns)];
+ struct nvme_id_ns *ns = (struct nvme_id_ns *)buf;
+
+ if (read(STDIN_FILENO, buf, sizeof(buf)))
+ return 1;
+
+ printf("nsze : %#llx\n", ns->nlbaf);
+ printf("ncap : %#llx\n", ns->mc);
+ return 0;
+}
+------------
+
+NVME
+----
+Part of the nvme-user suite
diff --git a/Documentation/nvme-id-ns.1 b/Documentation/nvme-id-ns.1
index 3104be3..97e8962 100644
--- a/Documentation/nvme-id-ns.1
+++ b/Documentation/nvme-id-ns.1
@@ -2,12 +2,12 @@
.\" Title: nvme-id-ns
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-ID\-NS" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-ID\-NS" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -33,7 +33,7 @@ nvme-id-ns \- Send NVMe Identify Namespace, return result and structure
.sp
.nf
\fInvme id\-ns\fR [\-v | \-\-vendor\-specific] [\-b | \-\-raw\-binary]
- [\-\-namespace\-id= | \-n ] [\-f | \-\-force]
+ [\-\-namespace\-id= | \-n ] [\-\-force]
[\-\-human\-readable | \-H]
[\-\-output\-format= | \-o ]
.fi
@@ -51,7 +51,7 @@ On success, the structure may be returned in one of several ways depending on th
Retrieve the identify namespace structure for the given nsid\&. This is required for the character devices, or overrides the block nsid if given\&.
.RE
.PP
-\-f, \-\-force
+\-\-force
.RS 4
Request controller return the identify namespace structure even if the namespace is not attached to the controller\&. This is valid only for controllers at or newer than revision 1\&.2\&. Controllers at revision lower than this may interpret the command incorrectly\&.
.RE
diff --git a/Documentation/nvme-id-ns.html b/Documentation/nvme-id-ns.html
index 8213e5e..55ce45a 100644
--- a/Documentation/nvme-id-ns.html
+++ b/Documentation/nvme-id-ns.html
@@ -4,7 +4,7 @@
-
+
nvme-id-ns(1)
-
-
-
-
-
-
-
SYNOPSIS
-
-
-
nvme lnvm-remove [--target-name=<TARGET> | -n <TARGET>]
-
-
-
-
-
-
DESCRIPTION
-
-
Remove an initialized target.
-
The target name is the name of which the media is exposed as in
-/dev/<TARGET>
-
-
-
-
OPTIONS
-
-
--
---target-name=<TARGET>
-
--
--n <TARGET>
-
--
-
- Target name of the device to initialize. For example: target0.
-
-
-
-
-
-
-
-
NVME
-
-
Part of the nvme-user suite
-
-
-
-
-
-
-
+
+
+
+
+
+
+nvme-media-unit-stat-log(1)
+
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme supported-log-pages <device> [--output-format=<fmt> | -o <fmt>]
+ [-b | --raw-binary]
+
+
+
+
+
+
DESCRIPTION
+
+
Retrieves the NVMe supportd log pages details from an NVMe device and provides
+the returned structure.
+
The <device> parameter is mandatory and should be the NVMe character
+device (ex: /dev/nvme0).
+
On success, the returned supportd log pages log structure will be printed
+for each command that is supported.
+
+
+
+
OPTIONS
+
+
+-
+-o <format>
+
+-
+--output-format=<format>
+
+-
+
+ This option will set the reporting format to normal, json, or binary.
+ Only one output format can be used at a time.
+
+
+-
+ -b
+
+ -
+ --raw-binary
+
+ -
+
+ This option will get the data in raw binary format.
+
+
+-
+ -d
+
+ -
+ --dom-id
+
+ -
+
+ This option is to get the domain ID.
+
+
+
+
+
+
+
EXAMPLES
+
+
No examples provided yet.
+
+
+
+
NVME
+
+
Part of the nvme-user suite
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Documentation/nvme-media-unit-stat-log.txt b/Documentation/nvme-media-unit-stat-log.txt
new file mode 100644
index 0000000..427b77c
--- /dev/null
+++ b/Documentation/nvme-media-unit-stat-log.txt
@@ -0,0 +1,47 @@
+nvme-media-unit-stat-log(1)
+===========================
+
+NAME
+----
+nvme-media-unit-stat-log - Send NVMe Media unit status Log pages
+request, returns result and log.
+
+SYNOPSIS
+--------
+[verse]
+'nvme media-unit-stat-log' [--dom-id | -d ]
+ [--output-format= | -o ]
+ [--raw-binary | -b]
+
+DESCRIPTION
+-----------
+Retrieves the NVMe Media unit status log pages details from
+an NVMe device and provides the returned structure.
+
+The parameter is mandatory and should be the NVMe character
+device (ex: /dev/nvme0).
+
+On success, the returned Media unit status log pages log structure will be printed.
+
+OPTIONS
+-------
+
+-o ::
+--output-format=::
+ This option will set the reporting format to normal, json, or binary.
+ Only one output format can be used at a time.
+
+-d::
+--dom-id::
+ To get the domain ID.
+-b::
+--raw-binary::
+ To show raw binary data.
+
+EXAMPLES
+--------
+No examples provided yet.
+
+NVME
+----
+Part of the nvme-user suite
\ No newline at end of file
diff --git a/Documentation/nvme-lnvm-remove.1 b/Documentation/nvme-mi-cmd-support-effects-log.1
similarity index 51%
rename from Documentation/nvme-lnvm-remove.1
rename to Documentation/nvme-mi-cmd-support-effects-log.1
index 8b6bb76..c15184d 100644
--- a/Documentation/nvme-lnvm-remove.1
+++ b/Documentation/nvme-mi-cmd-support-effects-log.1
@@ -1,13 +1,13 @@
'\" t
-.\" Title: nvme-lnvm-remove
+.\" Title: nvme-mi-cmd-support-effects-log
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-LNVM\-REMOVE" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-MI\-CMD\-SUPPO" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -28,26 +28,37 @@
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
-nvme-lnvm-remove \- Remove an initialized LightNVM target\&.
+nvme-mi-cmd-support-effects-log \- Send NVMe MI Command Support and Effects log, returns results and structure
.SH "SYNOPSIS"
.sp
.nf
-\fInvme lnvm\-remove\fR [\-\-target\-name= | \-n ]
+\fInvme\-mi\-cmd\-support\-effects\-log\fR [\-o | \-\-output\-format=]
+ [\-H | \-\-human\-readable]
.fi
.SH "DESCRIPTION"
.sp
-Remove an initialized target\&.
+For the NVMe device given, sends an MI Command Support and Effects log (id 13h) and provides the result and returned log structure\&.
.sp
-The target name is the name of which the media is exposed as in /dev/
+The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&.
+.sp
+On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&.
.SH "OPTIONS"
.PP
-\-\-target\-name=, \-n
+\-o , \-\-output\-format=
.RS 4
-Target name of the device to initialize\&. For example: target0\&.
+Set the reporting format to
+\fInormal\fR,
+\fIjson\fR, or
+\fIbinary\fR\&. Only one output format can be used at a time\&.
+.RE
+.PP
+\-H, \-\-human\-readable
+.RS 4
+This option will parse and format many of the bit fields into human\-readable formats\&.
.RE
.SH "EXAMPLES"
.sp
-None yet
+nvme mi\-cmd\-support\-effects\-log /dev/nvme0 \-H
.SH "NVME"
.sp
Part of the nvme\-user suite
diff --git a/Documentation/nvme-mi-cmd-support-effects-log.html b/Documentation/nvme-mi-cmd-support-effects-log.html
new file mode 100644
index 0000000..1afb0c0
--- /dev/null
+++ b/Documentation/nvme-mi-cmd-support-effects-log.html
@@ -0,0 +1,822 @@
+
+
+
+
+
+
+nvme-mi-cmd-support-effects-log(1)
+
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme-mi-cmd-support-effects-log <device> [-o <fmt> | --output-format=<fmt>]
+ [-H | --human-readable]
+
+
+
+
+
+
DESCRIPTION
+
+
For the NVMe device given, sends an MI Command Support and Effects log (id 13h)
+and provides the result and returned log structure.
+
The <device> parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
+
On success, the structure may be returned in one of several ways depending
+on the option flags; the structure may be parsed by the program or the
+raw buffer may be printed to stdout.
+
+
+
+
OPTIONS
+
+
+-
+-o <format>
+
+-
+--output-format=<format>
+
+-
+
+ Set the reporting format to normal, json, or
+ binary. Only one output format can be used at a time.
+
+
+-
+-H
+
+-
+--human-readable
+
+-
+
+ This option will parse and format many of the bit fields
+ into human-readable formats.
+
+
+
+
+
+
+
EXAMPLES
+
+
nvme mi-cmd-support-effects-log /dev/nvme0 -H
+
+
+
+
NVME
+
+
Part of the nvme-user suite
+
+
+
+
+
+
+
diff --git a/Documentation/nvme-mi-cmd-support-effects-log.txt b/Documentation/nvme-mi-cmd-support-effects-log.txt
new file mode 100644
index 0000000..67b8355
--- /dev/null
+++ b/Documentation/nvme-mi-cmd-support-effects-log.txt
@@ -0,0 +1,45 @@
+nvme-mi-cmd-support-effects-log(1)
+==================================
+
+NAME
+----
+nvme-mi-cmd-support-effects-log - Send NVMe MI Command Support and Effects log,
+ returns results and structure
+
+SYNOPSIS
+--------
+[verse]
+'nvme-mi-cmd-support-effects-log' [-o | --output-format=]
+ [-H | --human-readable]
+
+DESCRIPTION
+-----------
+For the NVMe device given, sends an MI Command Support and Effects log (id 13h)
+and provides the result and returned log structure.
+
+The parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
+
+On success, the structure may be returned in one of several ways depending
+on the option flags; the structure may be parsed by the program or the
+raw buffer may be printed to stdout.
+
+OPTIONS
+-------
+-o ::
+--output-format=::
+ Set the reporting format to 'normal', 'json', or
+ 'binary'. Only one output format can be used at a time.
+
+-H::
+--human-readable::
+ This option will parse and format many of the bit fields
+ into human-readable formats.
+
+EXAMPLES
+--------
+nvme mi-cmd-support-effects-log /dev/nvme0 -H
+
+NVME
+----
+Part of the nvme-user suite
diff --git a/Documentation/nvme-micron-clear-pcie-errors.1 b/Documentation/nvme-micron-clear-pcie-errors.1
index 7da8234..b99290e 100644
--- a/Documentation/nvme-micron-clear-pcie-errors.1
+++ b/Documentation/nvme-micron-clear-pcie-errors.1
@@ -2,12 +2,12 @@
.\" Title: nvme-micron-clear-pcie-errors
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-MICRON\-CLEAR\" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-MICRON\-CLEAR\" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-micron-clear-pcie-errors.html b/Documentation/nvme-micron-clear-pcie-errors.html
index 3f958f4..be146ad 100644
--- a/Documentation/nvme-micron-clear-pcie-errors.html
+++ b/Documentation/nvme-micron-clear-pcie-errors.html
@@ -4,7 +4,7 @@
-
+
nvme-micron-clear-pcie-errors(1)
-
-
-
-
-
-
-
-
DESCRIPTION
-
-
List all registered LightNVM devices.
-
-
-
-
-
-
NVME
-
-
Part of the nvme-user suite
-
-
-
-
-
-
-
+
+
+
+
+
+
+nvme-wdc-clear-pcie-corr(1)
+
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme wdc clear-pcie-corr <device>
+
+
+
+
+
+
DESCRIPTION
+
+
For the NVMe device given, sends the wdc vendor unique clear pcie
+correctable errors command.
+
The <device> parameter is mandatory and may be either the NVMe
+character device (ex: /dev/nvme0), or a namespace block device (ex:
+/dev/nvme0n1).
+
This will only work on WDC devices supporting this feature.
+Results for any other device are undefined.
+
+
+
+
+
+
NVME
+
+
Part of the nvme-user suite
+
+
+
+
+
+
+
diff --git a/Documentation/nvme-wdc-clear-pcie-correctable-errors.1 b/Documentation/nvme-wdc-clear-pcie-correctable-errors.1
index 7d3e090..50225e9 100644
--- a/Documentation/nvme-wdc-clear-pcie-correctable-errors.1
+++ b/Documentation/nvme-wdc-clear-pcie-correctable-errors.1
@@ -2,12 +2,12 @@
.\" Title: nvme-wdc-clear-pcie-correctable-errors
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-WDC\-CLEAR\-PC" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-WDC\-CLEAR\-PC" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-wdc-clear-pcie-correctable-errors.html b/Documentation/nvme-wdc-clear-pcie-correctable-errors.html
index 2b4b49c..4aa66ab 100644
--- a/Documentation/nvme-wdc-clear-pcie-correctable-errors.html
+++ b/Documentation/nvme-wdc-clear-pcie-correctable-errors.html
@@ -4,7 +4,7 @@
-
+
nvme-wdc-clear-pcie-correctable-errors(1)
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme wdc get-dev-capabilities-log <device> [--output-format=<normal|json>
+-o <normal|json>]
+
+
+
+
+
+
DESCRIPTION
+
+
For the NVMe device given, send a WDC plugin get-dev-capabilities-log command
+and output the device capabilities log data. The --output-format option will
+format the output as specified.
+
The <device> parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0).
+
This will only work on WDC devices supporting this log page.
+Results for any other device are undefined.
+
On success it returns the parsed device capabilities log page data, error
+code otherwise.
+
+
+
+
OPTIONS
+
+
+-
+-o <format>
+
+-
+--output-format=<format>
+
+-
+
+ Set the reporting format to normal, or
+ json. Only one output format can be used at a time.
+ Default is normal.
+
+
+
+
+
+
+
+
NVME
+
+
Part of the nvme-user suite.
+
+
+
+
+
+
+
diff --git a/Documentation/nvme-wdc-get-dev-capabilities-log.txt b/Documentation/nvme-wdc-get-dev-capabilities-log.txt
new file mode 100644
index 0000000..0621881
--- /dev/null
+++ b/Documentation/nvme-wdc-get-dev-capabilities-log.txt
@@ -0,0 +1,48 @@
+nvme-wdc-get-dev-capabilities-log(1)
+====================================
+
+NAME
+----
+nvme-wdc-get-dev-capabilities-log - Send NVMe WDC get-dev-capabilities-log
+ plugin command, return parsed log output
+
+SYNOPSIS
+--------
+[verse]
+'nvme wdc get-dev-capabilities-log' [--output-format=
+-o ]
+
+DESCRIPTION
+-----------
+For the NVMe device given, send a WDC plugin get-dev-capabilities-log command
+and output the device capabilities log data. The --output-format option will
+format the output as specified.
+
+The parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0).
+
+This will only work on WDC devices supporting this log page.
+Results for any other device are undefined.
+
+On success it returns the parsed device capabilities log page data, error
+code otherwise.
+
+OPTIONS
+-------
+-o ::
+--output-format=::
+ Set the reporting format to 'normal', or
+ 'json'. Only one output format can be used at a time.
+ Default is normal.
+
+EXAMPLES
+--------
+* Has the program issue WDC get-dev-capabilities-log plugin command :
++
+------------
+# nvme wdc get-dev-capabilities-log /dev/nvme0
+------------
+
+NVME
+----
+Part of the nvme-user suite.
diff --git a/Documentation/nvme-wdc-get-drive-status.1 b/Documentation/nvme-wdc-get-drive-status.1
index 0ce71ba..3c64d66 100644
--- a/Documentation/nvme-wdc-get-drive-status.1
+++ b/Documentation/nvme-wdc-get-drive-status.1
@@ -2,12 +2,12 @@
.\" Title: nvme-wdc-get-drive-status
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-WDC\-GET\-DRIV" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-WDC\-GET\-DRIV" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-wdc-get-drive-status.html b/Documentation/nvme-wdc-get-drive-status.html
index ee340f2..041aade 100644
--- a/Documentation/nvme-wdc-get-drive-status.html
+++ b/Documentation/nvme-wdc-get-drive-status.html
@@ -4,7 +4,7 @@
-
+
nvme-wdc-get-drive-status(1)
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme wdc get-error-recovery-log <device> [--output-format=<normal|json>
+-o <normal|json>]
+
+
+
+
+
+
DESCRIPTION
+
+
For the NVMe device given, send a WDC plugin get-error-recovery-log command
+and output the error recovery log data. The --output-format option will format
+the output as specified.
+
The <device> parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0).
+
This will only work on WDC devices supporting this log page.
+Results for any other device are undefined.
+
On success it returns the parsed error recovery log page data, error
+code otherwise.
+
+
+
+
OPTIONS
+
+
+-
+-o <format>
+
+-
+--output-format=<format>
+
+-
+
+ Set the reporting format to normal, or
+ json. Only one output format can be used at a time.
+ Default is normal.
+
+
+
+
+
+
+
+
NVME
+
+
Part of the nvme-user suite.
+
+
+
+
+
+
+
diff --git a/Documentation/nvme-wdc-get-error-recovery-log.txt b/Documentation/nvme-wdc-get-error-recovery-log.txt
new file mode 100644
index 0000000..2ad3605
--- /dev/null
+++ b/Documentation/nvme-wdc-get-error-recovery-log.txt
@@ -0,0 +1,48 @@
+nvme-wdc-get-error-recovery-log(1)
+==================================
+
+NAME
+----
+nvme-wdc-get-error-recovery-log - Send NVMe WDC get-error-recovery-log plugin
+ command, return parsed log output
+
+SYNOPSIS
+--------
+[verse]
+'nvme wdc get-error-recovery-log' [--output-format=
+-o ]
+
+DESCRIPTION
+-----------
+For the NVMe device given, send a WDC plugin get-error-recovery-log command
+and output the error recovery log data. The --output-format option will format
+the output as specified.
+
+The parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0).
+
+This will only work on WDC devices supporting this log page.
+Results for any other device are undefined.
+
+On success it returns the parsed error recovery log page data, error
+code otherwise.
+
+OPTIONS
+-------
+-o ::
+--output-format=::
+ Set the reporting format to 'normal', or
+ 'json'. Only one output format can be used at a time.
+ Default is normal.
+
+EXAMPLES
+--------
+* Has the program issue WDC get-error-recovery-log plugin command :
++
+------------
+# nvme wdc get-error-recovery-log /dev/nvme0
+------------
+
+NVME
+----
+Part of the nvme-user suite.
diff --git a/Documentation/nvme-wdc-get-latency-monitor-log.1 b/Documentation/nvme-wdc-get-latency-monitor-log.1
index 24903c5..4853add 100644
--- a/Documentation/nvme-wdc-get-latency-monitor-log.1
+++ b/Documentation/nvme-wdc-get-latency-monitor-log.1
@@ -2,12 +2,12 @@
.\" Title: nvme-wdc-get-latency-monitor-log
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-WDC\-GET\-LATE" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-WDC\-GET\-LATE" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-wdc-get-latency-monitor-log.html b/Documentation/nvme-wdc-get-latency-monitor-log.html
index 0c86989..fa91b8f 100644
--- a/Documentation/nvme-wdc-get-latency-monitor-log.html
+++ b/Documentation/nvme-wdc-get-latency-monitor-log.html
@@ -4,7 +4,7 @@
-
+
nvme-wdc-get-latency-monitor-log(1)
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme wdc get-unsupported-reqs-log <device> [--output-format=<normal|json>
+-o <normal|json>]
+
+
+
+
+
+
DESCRIPTION
+
+
For the NVMe device given, send a WDC plugin get-unsupported-reqs-log command
+and output the unsupported requirements log data. The --output-format option
+will format the output as specified.
+
The <device> parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0).
+
This will only work on WDC devices supporting this log page.
+Results for any other device are undefined.
+
On success it returns the parsed unsupported requirements log page data, error
+code otherwise.
+
+
+
+
OPTIONS
+
+
+-
+-o <format>
+
+-
+--output-format=<format>
+
+-
+
+ Set the reporting format to normal, or
+ json. Only one output format can be used at a time.
+ Default is normal.
+
+
+
+
+
+
+
+
NVME
+
+
Part of the nvme-user suite.
+
+
+
+
+
+
+
diff --git a/Documentation/nvme-wdc-get-unsupported-reqs-log.txt b/Documentation/nvme-wdc-get-unsupported-reqs-log.txt
new file mode 100644
index 0000000..f028665
--- /dev/null
+++ b/Documentation/nvme-wdc-get-unsupported-reqs-log.txt
@@ -0,0 +1,48 @@
+nvme-wdc-get-unsupported-reqs-log(1)
+====================================
+
+NAME
+----
+nvme-wdc-get-unsupported-reqs-log - Send NVMe WDC get-unsupported-reqs-log
+ plugin command, return parsed log output
+
+SYNOPSIS
+--------
+[verse]
+'nvme wdc get-unsupported-reqs-log' [--output-format=
+-o ]
+
+DESCRIPTION
+-----------
+For the NVMe device given, send a WDC plugin get-unsupported-reqs-log command
+and output the unsupported requirements log data. The --output-format option
+will format the output as specified.
+
+The parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0).
+
+This will only work on WDC devices supporting this log page.
+Results for any other device are undefined.
+
+On success it returns the parsed unsupported requirements log page data, error
+code otherwise.
+
+OPTIONS
+-------
+-o ::
+--output-format=::
+ Set the reporting format to 'normal', or
+ 'json'. Only one output format can be used at a time.
+ Default is normal.
+
+EXAMPLES
+--------
+* Has the program issue WDC get-unsupported-reqs-log plugin command :
++
+------------
+# nvme wdc get-unsupported-reqs-log /dev/nvme0
+------------
+
+NVME
+----
+Part of the nvme-user suite.
diff --git a/Documentation/nvme-wdc-id-ctrl.1 b/Documentation/nvme-wdc-id-ctrl.1
index 7c176a7..bdb99e3 100644
--- a/Documentation/nvme-wdc-id-ctrl.1
+++ b/Documentation/nvme-wdc-id-ctrl.1
@@ -2,12 +2,12 @@
.\" Title: nvme-wdc-id-ctrl
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-WDC\-ID\-CTRL" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-WDC\-ID\-CTRL" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-wdc-id-ctrl.html b/Documentation/nvme-wdc-id-ctrl.html
index 3acde0a..f0ef3e8 100644
--- a/Documentation/nvme-wdc-id-ctrl.html
+++ b/Documentation/nvme-wdc-id-ctrl.html
@@ -4,7 +4,7 @@
-
+
nvme-wdc-id-ctrl(1)
+
+
+
+
+
+
+
SYNOPSIS
+
+
+
nvme wdc smart-add-log <device> [--interval=<NUM>, -i <NUM>] [--output-format=<normal|json> -o <normal|json>]
+
+
+
+
+
+
DESCRIPTION
+
+
For the NVMe device given, send a Vendor Unique WDC smart-add-log command and
+provide the additional smart log. The --interval option will return performance
+statistics from the specified reporting interval.
+
The <device> parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0).
+
This will only work on WDC devices supporting this feature.
+Results for any other device are undefined.
+
On success it returns 0, error code otherwise.
+
+
+
+
OPTIONS
+
+
+-
+-i <NUM>
+
+-
+--interval=<NUM>
+
+-
+
+ Return the statistics from specific interval, defaults to 14
+
+
+-
+-o <format>
+
+-
+--output-format=<format>
+
+-
+
+ Set the reporting format to normal, or
+ json. Only one output format can be used at a time.
+ Default is normal.
+
+
+
+
Valid Interval values and description :-
+
+
+
+
+
+
+Value |
+Description |
+
+
+
+
+1 |
+Most recent five (5) minute accumulated set. |
+
+
+2-12 |
+Previous five (5) minute accumulated sets. |
+
+
+13 |
+The accumulated total of sets 1 through 12 that contain the previous hour of
+accumulated statistics. |
+
+
+14 |
+The statistical set accumulated since power-up. |
+
+
+15 |
+The statistical set accumulated during the entire lifetime of the device. |
+
+
+
+
+
+
+
+
CA Log Page Data Output Explanation
+
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+Physical NAND bytes written. |
+The number of bytes written to NAND. 16 bytes - hi/lo |
+
+
+Physical NAND bytes read |
+The number of bytes read from NAND. 16 bytes - hi/lo |
+
+
+Bad NAND Block Count |
+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 |
+
+
+Uncorrectable Read Error Count |
+Total count of NAND reads that were not correctable by read retries, all
+levels of ECC, or XOR (as applicable). 8 bytes |
+
+
+Soft ECC Error Count |
+Total count of NAND reads that were not correctable by read retries, or
+first-level ECC. 8 bytes |
+
+
+SSD End to End Detection Count |
+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 |
+
+
+SSD End to End Correction Count |
+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 |
+
+
+System Data % Used |
+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. |
+
+
+User Data Max Erase Count |
+The maximum erase count across all NAND blocks in the drive. 4 bytes |
+
+
+User Data Min Erase Count |
+The minimum erase count across all NAND blocks in the drive. 4 bytes |
+
+
+Refresh Count |
+A count of the number of blocks that have been re-allocated due to
+background operations only. 8 bytes |
+
+
+Program Fail Count |
+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 |
+
+
+User Data Erase Fail Count |
+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 |
+
+
+System Area Erase Fail Count |
+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 |
+
+
+Thermal Throttling Status |
+The current status of thermal throttling (enabled or disabled).
+2 bytes |
+
+
+Thermal Throttling Count |
+A count of the number of thermal throttling events. 2 bytes |
+
+
+PCIe Correctable Error Count |
+Summation counter of all PCIe correctable errors (Bad TLP, Bad
+DLLP, Receiver error, Replay timeouts, Replay rollovers). 8 bytes |
+
+
+
+
+
+
+
+
C1 Log Page Data Output Explanation
+
+
+
+
+
+
+
+Field |
+Description |
+
+
+
+
+Host Read Commands |
+Number of host read commands received during the reporting period. |
+
+
+Host Read Blocks |
+Number of 512-byte blocks requested during the reporting period. |
+
+
+Average Read Size |
+Average Read size is calculated using (Host Read Blocks/Host Read Commands). |
+
+
+Host Read Cache Hit Commands |
+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. |
+
+
+Host Read Cache Hit Percentage |
+Percentage of host read commands satisfied from the cache. |
+
+
+Host Read Cache Hit Blocks |
+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. |
+
+
+Average Read Cache Hit Size |
+Average size of read commands satisfied from the cache. |
+
+
+Host Read Commands Stalled |
+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. |
+
+
+Host Read Commands Stalled Percentage |
+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. |
+
+
+Host Write Commands |
+Number of host write commands received during the reporting period. |
+
+
+Host Write Blocks |
+Number of 512-byte blocks written during the reporting period. |
+
+
+Average Write Size |
+Average Write size calculated using (Host Write Blocks/Host Write Commands). |
+
+
+Host Write Odd Start Commands |
+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. |
+
+
+Host Write Odd Start Commands Percentage |
+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. |
+
+
+Host Write Odd End Commands |
+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. |
+
+
+Host Write Odd End Commands Percentage |
+Percentage of host write commands that ended on a non-aligned boundary. |
+
+
+Host Write Commands Stalled |
+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. |
+
+
+Host Write Commands Stalled Percentage |
+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. |
+
+
+NAND Read Commands |
+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. |
+
+
+NAND Read Blocks |
+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 |
+
+
+Average NAND Read Size |
+Average size of NAND read commands. |
+
+
+NAND Write Commands |
+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. |
+
+
+NAND Write Blocks |
+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. |
+
+
+Average NAND Write Size |
+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. |
+
+
+NAND Read Before Write |
+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. |
+
+
+
+
+
+
+
+
+
NVME
+
+
Part of the nvme-user suite.
+
+
+
+
+
+
+
diff --git a/Documentation/nvme-wdc-vs-drive-info.1 b/Documentation/nvme-wdc-vs-drive-info.1
index 98ef2a8..638188c 100644
--- a/Documentation/nvme-wdc-vs-drive-info.1
+++ b/Documentation/nvme-wdc-vs-drive-info.1
@@ -2,12 +2,12 @@
.\" Title: nvme-wdc-vs-drive-info
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 11/11/2021
+.\" Date: 04/08/2022
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-WDC\-VS\-DRIVE" "1" "11/11/2021" "NVMe" "NVMe Manual"
+.TH "NVME\-WDC\-VS\-DRIVE" "1" "04/08/2022" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-wdc-vs-drive-info.html b/Documentation/nvme-wdc-vs-drive-info.html
index 9993637..afb487a 100644
--- a/Documentation/nvme-wdc-vs-drive-info.html
+++ b/Documentation/nvme-wdc-vs-drive-info.html
@@ -4,7 +4,7 @@
-
+
nvme-wdc-vs-drive-info(1)