From 2e650c1f5f2f79e7db10dec5dcdd1cffcaf47891 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 26 Jul 2022 07:11:40 +0200 Subject: Merging upstream version 2.1~rc0 (Closes: #1015722). Signed-off-by: Daniel Baumann --- .github/dependabot.yml | 7 + .github/workflows/meson.yml | 40 +- .github/workflows/release.yml | 19 + CONTRIBUTING.md | 6 +- Documentation/cmd-plugins.txt | 2 +- Documentation/cmds-main.txt | 4 +- Documentation/meson.build | 8 +- Documentation/nvme-admin-passthru.1 | 4 +- Documentation/nvme-admin-passthru.html | 4 +- Documentation/nvme-ana-log.1 | 9 +- Documentation/nvme-ana-log.html | 15 +- Documentation/nvme-ana-log.txt | 4 + Documentation/nvme-attach-ns.1 | 8 +- Documentation/nvme-attach-ns.html | 8 +- Documentation/nvme-attach-ns.txt | 4 +- Documentation/nvme-boot-part-log.1 | 4 +- Documentation/nvme-boot-part-log.html | 4 +- Documentation/nvme-capacity-mgmt.1 | 4 +- Documentation/nvme-capacity-mgmt.html | 4 +- Documentation/nvme-changed-ns-list-log.1 | 4 +- Documentation/nvme-changed-ns-list-log.html | 4 +- Documentation/nvme-cmdset-ind-id-ns.1 | 4 +- Documentation/nvme-cmdset-ind-id-ns.html | 4 +- Documentation/nvme-compare.1 | 12 +- Documentation/nvme-compare.html | 14 +- Documentation/nvme-compare.txt | 10 +- Documentation/nvme-connect-all.1 | 6 +- Documentation/nvme-connect-all.html | 6 +- Documentation/nvme-connect-all.txt | 2 +- Documentation/nvme-connect.1 | 4 +- Documentation/nvme-connect.html | 4 +- Documentation/nvme-copy.1 | 6 +- Documentation/nvme-copy.html | 8 +- Documentation/nvme-copy.txt | 4 +- Documentation/nvme-create-ns.1 | 6 +- Documentation/nvme-create-ns.html | 6 +- Documentation/nvme-create-ns.txt | 2 +- Documentation/nvme-delete-ns.1 | 4 +- Documentation/nvme-delete-ns.html | 4 +- Documentation/nvme-dera-stat.1 | 4 +- Documentation/nvme-dera-stat.html | 4 +- Documentation/nvme-detach-ns.1 | 4 +- Documentation/nvme-detach-ns.html | 4 +- Documentation/nvme-device-self-test.1 | 6 +- Documentation/nvme-device-self-test.html | 6 +- Documentation/nvme-device-self-test.txt | 2 +- Documentation/nvme-dim.1 | 6 +- Documentation/nvme-dim.html | 6 +- Documentation/nvme-dim.txt | 2 +- Documentation/nvme-dir-receive.1 | 4 +- Documentation/nvme-dir-receive.html | 4 +- Documentation/nvme-dir-send.1 | 4 +- Documentation/nvme-dir-send.html | 4 +- Documentation/nvme-disconnect-all.1 | 4 +- Documentation/nvme-disconnect-all.html | 4 +- Documentation/nvme-disconnect.1 | 4 +- Documentation/nvme-disconnect.html | 4 +- Documentation/nvme-discover.1 | 10 +- Documentation/nvme-discover.html | 10 +- Documentation/nvme-discover.txt | 6 +- Documentation/nvme-dsm.1 | 4 +- Documentation/nvme-dsm.html | 4 +- Documentation/nvme-effects-log.1 | 4 +- Documentation/nvme-effects-log.html | 4 +- Documentation/nvme-endurance-event-agg-log.1 | 4 +- Documentation/nvme-endurance-event-agg-log.html | 4 +- Documentation/nvme-endurance-log.1 | 4 +- Documentation/nvme-endurance-log.html | 4 +- Documentation/nvme-error-log.1 | 4 +- Documentation/nvme-error-log.html | 4 +- Documentation/nvme-fid-support-effects-log.1 | 6 +- Documentation/nvme-fid-support-effects-log.html | 6 +- Documentation/nvme-fid-support-effects-log.txt | 2 +- Documentation/nvme-flush.1 | 4 +- Documentation/nvme-flush.html | 4 +- Documentation/nvme-format.1 | 4 +- Documentation/nvme-format.html | 4 +- Documentation/nvme-fw-commit.1 | 6 +- Documentation/nvme-fw-commit.html | 6 +- Documentation/nvme-fw-commit.txt | 2 +- Documentation/nvme-fw-download.1 | 6 +- Documentation/nvme-fw-download.html | 6 +- Documentation/nvme-fw-download.txt | 2 +- Documentation/nvme-fw-log.1 | 4 +- Documentation/nvme-fw-log.html | 4 +- Documentation/nvme-gen-hostnqn.1 | 4 +- Documentation/nvme-gen-hostnqn.html | 4 +- Documentation/nvme-get-feature.1 | 4 +- Documentation/nvme-get-feature.html | 4 +- Documentation/nvme-get-lba-status.1 | 4 +- Documentation/nvme-get-lba-status.html | 4 +- Documentation/nvme-get-log.1 | 4 +- Documentation/nvme-get-log.html | 4 +- Documentation/nvme-get-ns-id.1 | 4 +- Documentation/nvme-get-ns-id.html | 4 +- Documentation/nvme-get-property.1 | 4 +- Documentation/nvme-get-property.html | 4 +- Documentation/nvme-help.1 | 4 +- Documentation/nvme-help.html | 4 +- Documentation/nvme-huawei-id-ctrl.1 | 4 +- Documentation/nvme-huawei-id-ctrl.html | 4 +- Documentation/nvme-huawei-list.1 | 4 +- Documentation/nvme-huawei-list.html | 4 +- Documentation/nvme-id-ctrl.1 | 4 +- Documentation/nvme-id-ctrl.html | 4 +- Documentation/nvme-id-domain.1 | 6 +- Documentation/nvme-id-domain.html | 6 +- Documentation/nvme-id-domain.txt | 2 +- Documentation/nvme-id-iocs.1 | 4 +- Documentation/nvme-id-iocs.html | 4 +- Documentation/nvme-id-ns.1 | 6 +- Documentation/nvme-id-ns.html | 9 +- Documentation/nvme-id-ns.txt | 5 +- Documentation/nvme-id-nvmset.1 | 4 +- Documentation/nvme-id-nvmset.html | 4 +- Documentation/nvme-intel-id-ctrl.1 | 4 +- Documentation/nvme-intel-id-ctrl.html | 4 +- Documentation/nvme-intel-internal-log.1 | 4 +- Documentation/nvme-intel-internal-log.html | 4 +- Documentation/nvme-intel-lat-stats.1 | 4 +- Documentation/nvme-intel-lat-stats.html | 4 +- Documentation/nvme-intel-market-name.1 | 4 +- Documentation/nvme-intel-market-name.html | 4 +- Documentation/nvme-intel-smart-log-add.1 | 4 +- Documentation/nvme-intel-smart-log-add.html | 4 +- Documentation/nvme-intel-temp-stats.1 | 4 +- Documentation/nvme-intel-temp-stats.html | 4 +- Documentation/nvme-io-passthru.1 | 4 +- Documentation/nvme-io-passthru.html | 4 +- Documentation/nvme-lba-status-log.1 | 4 +- Documentation/nvme-lba-status-log.html | 4 +- Documentation/nvme-list-ctrl.1 | 4 +- Documentation/nvme-list-ctrl.html | 4 +- Documentation/nvme-list-endgrp.1 | 4 +- Documentation/nvme-list-endgrp.html | 4 +- Documentation/nvme-list-ns.1 | 6 +- Documentation/nvme-list-ns.html | 6 +- Documentation/nvme-list-ns.txt | 2 +- Documentation/nvme-list-subsys.1 | 4 +- Documentation/nvme-list-subsys.html | 4 +- Documentation/nvme-list.1 | 6 +- Documentation/nvme-list.html | 6 +- Documentation/nvme-list.txt | 2 +- Documentation/nvme-lockdown.1 | 12 +- Documentation/nvme-lockdown.html | 14 +- Documentation/nvme-lockdown.txt | 10 +- Documentation/nvme-mi-cmd-support-effects-log.1 | 4 +- Documentation/nvme-mi-cmd-support-effects-log.html | 4 +- Documentation/nvme-micron-clear-pcie-errors.1 | 6 +- Documentation/nvme-micron-clear-pcie-errors.html | 6 +- Documentation/nvme-micron-clear-pcie-errors.txt | 2 +- Documentation/nvme-micron-internal-log.1 | 6 +- Documentation/nvme-micron-internal-log.html | 8 +- Documentation/nvme-micron-internal-log.txt | 4 +- Documentation/nvme-micron-nand-stats.1 | 4 +- Documentation/nvme-micron-nand-stats.html | 4 +- Documentation/nvme-micron-pcie-stats.1 | 4 +- Documentation/nvme-micron-pcie-stats.html | 4 +- Documentation/nvme-micron-selective-download.1 | 4 +- Documentation/nvme-micron-selective-download.html | 4 +- Documentation/nvme-micron-smart-add-log.1 | 4 +- Documentation/nvme-micron-smart-add-log.html | 4 +- Documentation/nvme-micron-temperature-stats.1 | 6 +- Documentation/nvme-micron-temperature-stats.html | 8 +- Documentation/nvme-micron-temperature-stats.txt | 2 +- Documentation/nvme-netapp-ontapdevices.1 | 4 +- Documentation/nvme-netapp-ontapdevices.html | 4 +- Documentation/nvme-netapp-smdevices.1 | 4 +- Documentation/nvme-netapp-smdevices.html | 4 +- Documentation/nvme-ns-descs.1 | 4 +- Documentation/nvme-ns-descs.html | 4 +- Documentation/nvme-ns-rescan.1 | 4 +- Documentation/nvme-ns-rescan.html | 4 +- Documentation/nvme-nvm-id-ctrl.1 | 4 +- Documentation/nvme-nvm-id-ctrl.html | 4 +- Documentation/nvme-ocp-latency-monitor-log.1 | 4 +- Documentation/nvme-ocp-latency-monitor-log.html | 4 +- Documentation/nvme-ocp-smart-add-log.1 | 4 +- Documentation/nvme-ocp-smart-add-log.html | 4 +- Documentation/nvme-persistent-event-log.1 | 4 +- Documentation/nvme-persistent-event-log.html | 4 +- Documentation/nvme-pred-lat-event-agg-log.1 | 10 +- Documentation/nvme-pred-lat-event-agg-log.html | 10 +- Documentation/nvme-pred-lat-event-agg-log.txt | 6 +- Documentation/nvme-predictable-lat-log.1 | 18 +- Documentation/nvme-predictable-lat-log.html | 20 +- Documentation/nvme-predictable-lat-log.txt | 16 +- Documentation/nvme-primary-ctrl-caps.1 | 6 +- Documentation/nvme-primary-ctrl-caps.html | 6 +- Documentation/nvme-primary-ctrl-caps.txt | 2 +- Documentation/nvme-read.1 | 8 +- Documentation/nvme-read.html | 10 +- Documentation/nvme-read.txt | 6 +- Documentation/nvme-reset.1 | 4 +- Documentation/nvme-reset.html | 4 +- Documentation/nvme-resv-acquire.1 | 4 +- Documentation/nvme-resv-acquire.html | 4 +- Documentation/nvme-resv-notif-log.1 | 4 +- Documentation/nvme-resv-notif-log.html | 4 +- Documentation/nvme-resv-register.1 | 4 +- Documentation/nvme-resv-register.html | 4 +- Documentation/nvme-resv-release.1 | 4 +- Documentation/nvme-resv-release.html | 4 +- Documentation/nvme-resv-report.1 | 4 +- Documentation/nvme-resv-report.html | 4 +- Documentation/nvme-rpmb.1 | 16 +- Documentation/nvme-rpmb.html | 16 +- Documentation/nvme-rpmb.txt | 12 +- Documentation/nvme-sanitize-log.1 | 4 +- Documentation/nvme-sanitize-log.html | 4 +- Documentation/nvme-sanitize.1 | 8 +- Documentation/nvme-sanitize.html | 8 +- Documentation/nvme-sanitize.txt | 4 +- Documentation/nvme-security-recv.1 | 4 +- Documentation/nvme-security-recv.html | 4 +- Documentation/nvme-security-send.1 | 4 +- Documentation/nvme-security-send.html | 4 +- Documentation/nvme-self-test-log.1 | 6 +- Documentation/nvme-self-test-log.html | 6 +- Documentation/nvme-self-test-log.txt | 2 +- Documentation/nvme-set-feature.1 | 4 +- Documentation/nvme-set-feature.html | 4 +- Documentation/nvme-set-property.1 | 8 +- Documentation/nvme-set-property.html | 8 +- Documentation/nvme-set-property.txt | 4 +- Documentation/nvme-show-hostnqn.1 | 4 +- Documentation/nvme-show-hostnqn.html | 4 +- Documentation/nvme-show-regs.1 | 4 +- Documentation/nvme-show-regs.html | 4 +- Documentation/nvme-smart-log.1 | 4 +- Documentation/nvme-smart-log.html | 4 +- Documentation/nvme-subsystem-reset.1 | 4 +- Documentation/nvme-subsystem-reset.html | 4 +- Documentation/nvme-supported-log-pages.1 | 8 +- Documentation/nvme-supported-log-pages.html | 8 +- Documentation/nvme-supported-log-pages.txt | 4 +- Documentation/nvme-telemetry-log.1 | 4 +- Documentation/nvme-telemetry-log.html | 4 +- .../nvme-toshiba-clear-pcie-correctable-errors.1 | 4 +- ...nvme-toshiba-clear-pcie-correctable-errors.html | 4 +- Documentation/nvme-toshiba-vs-internal-log.1 | 4 +- Documentation/nvme-toshiba-vs-internal-log.html | 4 +- Documentation/nvme-toshiba-vs-smart-add-log.1 | 4 +- Documentation/nvme-toshiba-vs-smart-add-log.html | 4 +- Documentation/nvme-transcend-badblock.1 | 4 +- Documentation/nvme-transcend-badblock.html | 4 +- Documentation/nvme-transcend-healthvalue.1 | 10 +- Documentation/nvme-transcend-healthvalue.html | 10 +- Documentation/nvme-transcend-healthvalue.txt | 6 +- Documentation/nvme-verify.1 | 6 +- Documentation/nvme-verify.html | 7 +- Documentation/nvme-verify.txt | 3 +- .../nvme-virtium-save-smart-to-vtview-log.1 | 6 +- .../nvme-virtium-save-smart-to-vtview-log.html | 6 +- .../nvme-virtium-save-smart-to-vtview-log.txt | 2 +- Documentation/nvme-virtium-show-identify.1 | 4 +- Documentation/nvme-virtium-show-identify.html | 4 +- Documentation/nvme-wdc-cap-diag.1 | 4 +- Documentation/nvme-wdc-cap-diag.html | 4 +- Documentation/nvme-wdc-capabilities.1 | 4 +- Documentation/nvme-wdc-capabilities.html | 4 +- Documentation/nvme-wdc-clear-assert-dump.1 | 4 +- Documentation/nvme-wdc-clear-assert-dump.html | 4 +- Documentation/nvme-wdc-clear-fw-activate-history.1 | 4 +- .../nvme-wdc-clear-fw-activate-history.html | 4 +- .../nvme-wdc-clear-pcie-correctable-errors.1 | 4 +- .../nvme-wdc-clear-pcie-correctable-errors.html | 4 +- Documentation/nvme-wdc-cloud-SSD-plugin-version.1 | 4 +- .../nvme-wdc-cloud-SSD-plugin-version.html | 4 +- Documentation/nvme-wdc-cloud-boot-SSD-version.1 | 68 + Documentation/nvme-wdc-cloud-boot-SSD-version.html | 797 ++++++++ Documentation/nvme-wdc-cloud-boot-SSD-version.txt | 33 + Documentation/nvme-wdc-drive-essentials.1 | 4 +- Documentation/nvme-wdc-drive-essentials.html | 4 +- Documentation/nvme-wdc-drive-log.1 | 4 +- Documentation/nvme-wdc-drive-log.html | 4 +- Documentation/nvme-wdc-drive-resize.1 | 4 +- Documentation/nvme-wdc-drive-resize.html | 4 +- Documentation/nvme-wdc-enc-get-log.1 | 4 +- Documentation/nvme-wdc-enc-get-log.html | 4 +- Documentation/nvme-wdc-get-crash-dump.1 | 4 +- Documentation/nvme-wdc-get-crash-dump.html | 4 +- Documentation/nvme-wdc-get-dev-capabilities-log.1 | 4 +- .../nvme-wdc-get-dev-capabilities-log.html | 4 +- Documentation/nvme-wdc-get-drive-status.1 | 6 +- Documentation/nvme-wdc-get-drive-status.html | 6 +- Documentation/nvme-wdc-get-drive-status.txt | 2 +- Documentation/nvme-wdc-get-error-recovery-log.1 | 4 +- Documentation/nvme-wdc-get-error-recovery-log.html | 4 +- Documentation/nvme-wdc-get-latency-monitor-log.1 | 4 +- .../nvme-wdc-get-latency-monitor-log.html | 4 +- Documentation/nvme-wdc-get-pfail-dump.1 | 4 +- Documentation/nvme-wdc-get-pfail-dump.html | 4 +- Documentation/nvme-wdc-get-unsupported-reqs-log.1 | 4 +- .../nvme-wdc-get-unsupported-reqs-log.html | 4 +- Documentation/nvme-wdc-id-ctrl.1 | 4 +- Documentation/nvme-wdc-id-ctrl.html | 4 +- Documentation/nvme-wdc-log-page-directory.1 | 4 +- Documentation/nvme-wdc-log-page-directory.html | 4 +- Documentation/nvme-wdc-namespace-resize.1 | 8 +- Documentation/nvme-wdc-namespace-resize.html | 8 +- Documentation/nvme-wdc-namespace-resize.txt | 4 +- Documentation/nvme-wdc-purge-monitor.1 | 4 +- Documentation/nvme-wdc-purge-monitor.html | 4 +- Documentation/nvme-wdc-purge.1 | 4 +- Documentation/nvme-wdc-purge.html | 4 +- Documentation/nvme-wdc-vs-cloud-log.1 | 84 + Documentation/nvme-wdc-vs-cloud-log.html | 835 ++++++++ Documentation/nvme-wdc-vs-cloud-log.txt | 52 + Documentation/nvme-wdc-vs-device-waf.1 | 84 + Documentation/nvme-wdc-vs-device-waf.html | 835 ++++++++ Documentation/nvme-wdc-vs-device-waf.txt | 53 + Documentation/nvme-wdc-vs-drive-info.1 | 12 +- Documentation/nvme-wdc-vs-drive-info.html | 10 +- Documentation/nvme-wdc-vs-drive-info.txt | 9 +- .../nvme-wdc-vs-error-reason-identifier.1 | 4 +- .../nvme-wdc-vs-error-reason-identifier.html | 4 +- Documentation/nvme-wdc-vs-fw-activate-history.1 | 10 +- Documentation/nvme-wdc-vs-fw-activate-history.html | 10 +- Documentation/nvme-wdc-vs-fw-activate-history.txt | 6 +- Documentation/nvme-wdc-vs-hw-rev-log.1 | 84 + Documentation/nvme-wdc-vs-hw-rev-log.html | 834 ++++++++ Documentation/nvme-wdc-vs-hw-rev-log.txt | 51 + Documentation/nvme-wdc-vs-internal-log.1 | 4 +- Documentation/nvme-wdc-vs-internal-log.html | 4 +- Documentation/nvme-wdc-vs-nand-stats.1 | 4 +- Documentation/nvme-wdc-vs-nand-stats.html | 4 +- Documentation/nvme-wdc-vs-smart-add-log.1 | 4 +- Documentation/nvme-wdc-vs-smart-add-log.html | 4 +- .../nvme-wdc-vs-telemetry-controller-option.1 | 4 +- .../nvme-wdc-vs-telemetry-controller-option.html | 4 +- Documentation/nvme-wdc-vs-temperature-stats.1 | 4 +- Documentation/nvme-wdc-vs-temperature-stats.html | 4 +- Documentation/nvme-write-uncor.1 | 8 +- Documentation/nvme-write-uncor.html | 8 +- Documentation/nvme-write-uncor.txt | 4 +- Documentation/nvme-write-zeroes.1 | 12 +- Documentation/nvme-write-zeroes.html | 15 +- Documentation/nvme-write-zeroes.txt | 11 +- Documentation/nvme-write.1 | 8 +- Documentation/nvme-write.html | 10 +- Documentation/nvme-write.txt | 6 +- Documentation/nvme-zns-changed-zone-list.1 | 4 +- Documentation/nvme-zns-changed-zone-list.html | 4 +- Documentation/nvme-zns-close-zone.1 | 4 +- Documentation/nvme-zns-close-zone.html | 4 +- Documentation/nvme-zns-finish-zone.1 | 4 +- Documentation/nvme-zns-finish-zone.html | 4 +- Documentation/nvme-zns-id-ctrl.1 | 4 +- Documentation/nvme-zns-id-ctrl.html | 4 +- Documentation/nvme-zns-id-ns.1 | 6 +- Documentation/nvme-zns-id-ns.html | 6 +- Documentation/nvme-zns-id-ns.txt | 2 +- Documentation/nvme-zns-offline-zone.1 | 4 +- Documentation/nvme-zns-offline-zone.html | 4 +- Documentation/nvme-zns-open-zone.1 | 4 +- Documentation/nvme-zns-open-zone.html | 4 +- Documentation/nvme-zns-report-zones.1 | 4 +- Documentation/nvme-zns-report-zones.html | 4 +- Documentation/nvme-zns-reset-zone.1 | 4 +- Documentation/nvme-zns-reset-zone.html | 4 +- Documentation/nvme-zns-set-zone-desc.1 | 8 +- Documentation/nvme-zns-set-zone-desc.html | 10 +- Documentation/nvme-zns-set-zone-desc.txt | 6 +- Documentation/nvme-zns-zone-append.1 | 6 +- Documentation/nvme-zns-zone-append.html | 6 +- Documentation/nvme-zns-zone-append.txt | 2 +- Documentation/nvme-zns-zone-mgmt-recv.1 | 4 +- Documentation/nvme-zns-zone-mgmt-recv.html | 4 +- Documentation/nvme-zns-zone-mgmt-send.1 | 4 +- Documentation/nvme-zns-zone-mgmt-send.html | 4 +- Documentation/nvme-zns-zrwa-flush-zone.txt | 2 +- Documentation/nvme.1 | 13 +- Documentation/nvme.html | 17 +- Documentation/nvme.txt | 5 + Documentation/update-docs.sh | 11 + Makefile | 2 +- README.md | 11 + ccan/meson.build | 2 + cmd.h | 1 + cmd_handler.h | 1 + common.h | 1 + completions/_nvme | 2 + completions/bash-nvme-completion.sh | 15 +- define_cmd.h | 1 + fabrics.c | 30 +- fabrics.h | 1 + meson-vcs-tag.sh | 17 + meson.build | 50 +- meson_options.txt | 6 +- nvme-builtin.h | 1 + nvme-models.c | 25 +- nvme-models.h | 1 + nvme-print.c | 397 ++-- nvme-print.h | 4 +- nvme-rpmb.c | 63 +- nvme.c | 329 ++- nvme.h | 41 +- nvme.spec.in | 2 +- .../udev-rules/70-nvmf-autoconnect.rules.in | 7 + plugin.c | 17 +- plugin.h | 1 + plugins/amzn/amzn-nvme.c | 1 + plugins/amzn/amzn-nvme.h | 1 + plugins/dell/dell-nvme.c | 54 + plugins/dell/dell-nvme.h | 18 + plugins/dera/dera-nvme.c | 4 +- plugins/dera/dera-nvme.h | 1 + plugins/huawei/huawei-nvme.c | 64 +- plugins/huawei/huawei-nvme.h | 1 + plugins/innogrit/innogrit-nvme.c | 402 ++++ plugins/innogrit/innogrit-nvme.h | 20 + plugins/innogrit/typedef.h | 72 + plugins/intel/intel-nvme.c | 51 +- plugins/intel/intel-nvme.h | 1 + plugins/memblaze/memblaze-nvme.c | 97 +- plugins/memblaze/memblaze-nvme.h | 1 + plugins/memblaze/memblaze-utils.h | 37 +- plugins/meson.build | 6 + plugins/micron/micron-nvme.c | 593 ++++-- plugins/micron/micron-nvme.h | 1 + plugins/netapp/netapp-nvme.c | 38 +- plugins/netapp/netapp-nvme.h | 1 + plugins/nvidia/nvidia-nvme.c | 1 + plugins/nvidia/nvidia-nvme.h | 1 + plugins/ocp/ocp-nvme.c | 18 +- plugins/ocp/ocp-nvme.h | 2 +- plugins/scaleflux/sfx-nvme.c | 328 ++- plugins/scaleflux/sfx-nvme.h | 1 + plugins/seagate/seagate-diag.h | 1 + plugins/seagate/seagate-nvme.c | 85 +- plugins/seagate/seagate-nvme.h | 1 + plugins/shannon/shannon-nvme.c | 6 +- plugins/shannon/shannon-nvme.h | 1 + plugins/solidigm/meson.build | 5 + plugins/solidigm/solidigm-garbage-collection.c | 111 + plugins/solidigm/solidigm-garbage-collection.h | 8 + plugins/solidigm/solidigm-latency-tracking.c | 470 +++++ plugins/solidigm/solidigm-latency-tracking.h | 9 + plugins/solidigm/solidigm-nvme.c | 30 + plugins/solidigm/solidigm-nvme.h | 28 + plugins/solidigm/solidigm-smart.c | 250 +++ plugins/solidigm/solidigm-smart.h | 8 + plugins/toshiba/toshiba-nvme.c | 5 + plugins/toshiba/toshiba-nvme.h | 1 + plugins/transcend/transcend-nvme.c | 5 +- plugins/transcend/transcend-nvme.h | 1 + plugins/virtium/virtium-nvme.c | 37 +- plugins/virtium/virtium-nvme.h | 1 + plugins/wdc/wdc-nvme.c | 2140 +++++++++++++++++--- plugins/wdc/wdc-nvme.h | 7 +- plugins/wdc/wdc-utils.c | 1 + plugins/wdc/wdc-utils.h | 1 + plugins/ymtc/ymtc-nvme.c | 35 +- plugins/ymtc/ymtc-nvme.h | 1 + plugins/ymtc/ymtc-utils.h | 1 + plugins/zns/zns.c | 16 +- plugins/zns/zns.h | 1 + regress | 1 + release.sh | 84 + scripts/gen-hostnqn.sh | 1 + scripts/latency | 1 + subprojects/json-c.wrap | 15 +- subprojects/libnvme.wrap | 2 +- subprojects/uuid.wrap | 6 + tests/README | 16 +- tests/meson.build | 65 +- tests/nvme_attach_detach_ns_test.py | 29 +- tests/nvme_compare_test.py | 17 +- tests/nvme_copy_test.py | 11 +- tests/nvme_create_max_ns_test.py | 29 +- tests/nvme_dsm_test.py | 11 +- tests/nvme_error_log_test.py | 13 +- tests/nvme_flush_test.py | 13 +- tests/nvme_format_test.py | 45 +- tests/nvme_fw_log_test.py | 13 +- tests/nvme_get_features_test.py | 15 +- tests/nvme_get_lba_status_test.py | 11 +- tests/nvme_id_ctrl_test.py | 16 +- tests/nvme_id_ns_test.py | 15 +- tests/nvme_lba_status_log_test.py | 11 +- tests/nvme_read_write_test.py | 17 +- tests/nvme_simple_template_test.py | 10 +- tests/nvme_smart_log_test.py | 15 +- tests/nvme_test.py | 65 +- tests/nvme_test_io.py | 14 +- tests/nvme_test_logger.py | 4 +- tests/nvme_verify_test.py | 11 +- tests/nvme_writeuncor_test.py | 21 +- tests/nvme_writezeros_test.py | 23 +- update-docs.sh | 10 - util/argconfig.c | 6 +- util/argconfig.h | 1 + util/base64.c | 2 + util/base64.h | 1 + util/cleanup.c | 1 + util/cleanup.h | 1 + util/json.c | 406 +--- util/json.h | 123 +- util/meson.build | 3 +- util/parser.c | 284 --- util/parser.h | 34 - util/suffix.c | 1 + util/suffix.h | 1 + wrapper.c | 22 + 505 files changed, 10359 insertions(+), 3003 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/release.yml create mode 100644 Documentation/nvme-wdc-cloud-boot-SSD-version.1 create mode 100644 Documentation/nvme-wdc-cloud-boot-SSD-version.html create mode 100644 Documentation/nvme-wdc-cloud-boot-SSD-version.txt create mode 100644 Documentation/nvme-wdc-vs-cloud-log.1 create mode 100644 Documentation/nvme-wdc-vs-cloud-log.html create mode 100644 Documentation/nvme-wdc-vs-cloud-log.txt create mode 100644 Documentation/nvme-wdc-vs-device-waf.1 create mode 100644 Documentation/nvme-wdc-vs-device-waf.html create mode 100644 Documentation/nvme-wdc-vs-device-waf.txt create mode 100644 Documentation/nvme-wdc-vs-hw-rev-log.1 create mode 100644 Documentation/nvme-wdc-vs-hw-rev-log.html create mode 100644 Documentation/nvme-wdc-vs-hw-rev-log.txt create mode 100755 Documentation/update-docs.sh create mode 100755 meson-vcs-tag.sh create mode 100644 plugins/dell/dell-nvme.c create mode 100644 plugins/dell/dell-nvme.h create mode 100644 plugins/innogrit/innogrit-nvme.c create mode 100644 plugins/innogrit/innogrit-nvme.h create mode 100644 plugins/innogrit/typedef.h create mode 100644 plugins/solidigm/meson.build create mode 100644 plugins/solidigm/solidigm-garbage-collection.c create mode 100644 plugins/solidigm/solidigm-garbage-collection.h create mode 100644 plugins/solidigm/solidigm-latency-tracking.c create mode 100644 plugins/solidigm/solidigm-latency-tracking.h create mode 100644 plugins/solidigm/solidigm-nvme.c create mode 100644 plugins/solidigm/solidigm-nvme.h create mode 100644 plugins/solidigm/solidigm-smart.c create mode 100644 plugins/solidigm/solidigm-smart.h create mode 100755 release.sh create mode 100644 subprojects/uuid.wrap delete mode 100755 update-docs.sh delete mode 100644 util/parser.c delete mode 100644 util/parser.h create mode 100644 wrapper.c diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..23c4cb3 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +--- +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/meson.yml b/.github/workflows/meson.yml index 0d6350f..c49470b 100644 --- a/.github/workflows/meson.yml +++ b/.github/workflows/meson.yml @@ -9,14 +9,16 @@ on: workflow_dispatch: jobs: - meson-build: + build-disto: 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 + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.x' # - name: install python dependencies # run: | # python -m pip install --upgrade pip @@ -25,3 +27,35 @@ jobs: with: setup-options: --werror action: build + + build-fallback: + runs-on: ubuntu-latest + steps: + - name: install libraries + run: sudo apt-get install -y libpam-dev libcap-ng-dev + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - uses: BSFishy/meson-build@v1.0.3 + with: + setup-options: --werror -Duuid:werror=false --wrap-mode=forcefallback + options: --verbose + action: build + meson-version: 0.61.2 + + build-static: + runs-on: ubuntu-latest + steps: + - name: install libraries + run: sudo apt-get install -y libpam-dev libcap-ng-dev + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - uses: BSFishy/meson-build@v1.0.3 + with: + setup-options: --werror -Duuid:werror=false --wrap-mode=forcefallback --default-library=static + options: --verbose + action: build + meson-version: 0.61.2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..db84ef5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,19 @@ +name: Releases + +on: + push: + branches: [ master ] + tags: + - '**' + +jobs: + build: + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/v') + permissions: + contents: write + steps: + - uses: actions/checkout@v2 + - uses: ncipollo/release-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3b7f55f..cde8527 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,11 @@ Contributions and new ideas are most welcome! **NOTE: If you do decide to implement code changes and contribute them, please make sure you agree your contribution can be made available -under the [GPLv2-style License used for the NVMe CLI](https://github.com/linux-nvme/nvme-cli/blob/master/LICENSE).** +under the [GPLv2-style License used for the NVMe CLI](https://github.com/linux-nvme/nvme-cli/blob/master/LICENSE). +(SPDX-License-Identifier: GPL-2.0-or-later)** + +Because there are a few files licensed under GPL-2.0-only, the whole +project is tagged as GPL-2.0-only and not as GPL-2.0-or-later. ### Code Contributions diff --git a/Documentation/cmd-plugins.txt b/Documentation/cmd-plugins.txt index 4e66cf1..2ab6c68 100644 --- a/Documentation/cmd-plugins.txt +++ b/Documentation/cmd-plugins.txt @@ -65,7 +65,7 @@ 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 + Use NVMe SMART table to analyze the health value of Transcend device linknvme:nvme-virtium-show-identify[1]:: Show a complete detail of identify device information in json format diff --git a/Documentation/cmds-main.txt b/Documentation/cmds-main.txt index ab8ee3b..58a8094 100644 --- a/Documentation/cmds-main.txt +++ b/Documentation/cmds-main.txt @@ -44,7 +44,7 @@ linknvme:nvme-smart-log[1]:: Retrieve Smart Log linknvme:nvme-ana-log[1]:: - Retreive ANA(Asymmetric Namespace Access) Log + Retrieve ANA(Asymmetric Namespace Access) Log linknvme:nvme-endurance-log[1]:: Retrieve endurance Log @@ -236,7 +236,7 @@ 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 + Retrieve Persistent Event Log linknvme:nvme-predictable-lat-log[1]:: Retrieve Predictable Latency per Nvmset Log diff --git a/Documentation/meson.build b/Documentation/meson.build index a12eec4..a47c27f 100644 --- a/Documentation/meson.build +++ b/Documentation/meson.build @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + adoc_sources = [ 'nvme', 'nvme-admin-passthru', @@ -114,6 +116,7 @@ adoc_sources = [ 'nvme-wdc-clear-assert-dump', 'nvme-wdc-clear-fw-activate-history', 'nvme-wdc-clear-pcie-correctable-errors', + 'nvme-wdc-cloud-boot-SSD-version', 'nvme-wdc-cloud-SSD-plugin-version', 'nvme-wdc-drive-essentials', 'nvme-wdc-drive-log', @@ -131,9 +134,12 @@ adoc_sources = [ 'nvme-wdc-namespace-resize', 'nvme-wdc-purge', 'nvme-wdc-purge-monitor', + 'nvme-wdc-vs-cloud-log', + 'nvme-wdc-vs-device-waf', 'nvme-wdc-vs-drive-info', 'nvme-wdc-vs-error-reason-identifier', 'nvme-wdc-vs-fw-activate-history', + 'nvme-wdc-vs-hw-rev-log', 'nvme-wdc-vs-internal-log', 'nvme-wdc-vs-nand-stats', 'nvme-wdc-vs-smart-add-log', @@ -168,7 +174,7 @@ if want_docs != 'false' mandir = join_paths(get_option('mandir'), 'man1') htmldir = join_paths(get_option('htmldir'), 'nvme') - asciidoctor = find_program('asciidoc', required : false) + asciidoctor = find_program('asciidoc', required: get_option('docs-build')) if want_docs_build and asciidoctor.found() # Build documentation before installing diff --git a/Documentation/nvme-admin-passthru.1 b/Documentation/nvme-admin-passthru.1 index 1beb822..45ed0ea 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: 04/08/2022 +.\" Date: 07/14/2022 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" -.TH "NVME\-ADMIN\-PASSTHR" "1" "04/08/2022" "NVMe" "NVMe Manual" +.TH "NVME\-ADMIN\-PASSTHR" "1" "07/14/2022" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/Documentation/nvme-admin-passthru.html b/Documentation/nvme-admin-passthru.html index b6b7675..c1c31c2 100644 --- a/Documentation/nvme-admin-passthru.html +++ b/Documentation/nvme-admin-passthru.html @@ -4,7 +4,7 @@ - + nvme-admin-passthru(1) + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc cloud-boot-SSD-version <device>
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, this command displays the current Cloud Hyperscale +Boot Version (if supported by the device).

+

The <device> parameter is mandatory NVMe character device (ex: /dev/nvme0).

+

On success it returns 0, error code otherwise.

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Displays the cloud boot ssd version for the device: +

    +
    +
    +
    # nvme wdc cloud-boot-SSD-version /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite.

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-cloud-boot-SSD-version.txt b/Documentation/nvme-wdc-cloud-boot-SSD-version.txt new file mode 100644 index 0000000..a3f105e --- /dev/null +++ b/Documentation/nvme-wdc-cloud-boot-SSD-version.txt @@ -0,0 +1,33 @@ +nvme-wdc-cloud-boot-SSD-version(1) +================================== + +NAME +---- +nvme-wdc-cloud-boot-SSD-version - Display WDC plugin Cloud Boot SSD Version + +SYNOPSIS +-------- +[verse] +'nvme wdc cloud-boot-SSD-version' + +DESCRIPTION +----------- + +For the NVMe device given, this command displays the current Cloud Hyperscale +Boot Version (if supported by the device). + +The parameter is mandatory NVMe character device (ex: /dev/nvme0). + +On success it returns 0, error code otherwise. + +EXAMPLES +-------- +* Displays the cloud boot ssd version for the device: ++ +------------ +# nvme wdc cloud-boot-SSD-version /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite. diff --git a/Documentation/nvme-wdc-drive-essentials.1 b/Documentation/nvme-wdc-drive-essentials.1 index e481ec2..928ae4f 100644 --- a/Documentation/nvme-wdc-drive-essentials.1 +++ b/Documentation/nvme-wdc-drive-essentials.1 @@ -2,12 +2,12 @@ .\" Title: nvme-wdc-drive-essentials .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 04/08/2022 +.\" Date: 07/14/2022 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" -.TH "NVME\-WDC\-DRIVE\-ES" "1" "04/08/2022" "NVMe" "NVMe Manual" +.TH "NVME\-WDC\-DRIVE\-ES" "1" "07/14/2022" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/Documentation/nvme-wdc-drive-essentials.html b/Documentation/nvme-wdc-drive-essentials.html index d760965..2835cdc 100644 --- a/Documentation/nvme-wdc-drive-essentials.html +++ b/Documentation/nvme-wdc-drive-essentials.html @@ -4,7 +4,7 @@ - + nvme-wdc-drive-essentials(1) + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc vs-cloud-log <device> [--output-format=<normal|json> -o <normal|json>]
+                        [--namespace-id=<nsid> | -n <nsid>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, send a Vendor Unique WDC vs-cloud-log command and +provide the smart/health log.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0) or block device (ex: /dev/nvme0n1).

+

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

+
+
+
+-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. +

+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Sets the command’s nsid value to the given nsid. Defaults to + 0xffffffff if not given. This option may not affect anything + depending on the log page, which may or may not be specific to + a namespace. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program issue WDC vs-cloud-log Vendor Unique Command : +

    +
    +
    +
    # nvme wdc vs-cloud-log /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite.

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-vs-cloud-log.txt b/Documentation/nvme-wdc-vs-cloud-log.txt new file mode 100644 index 0000000..9eeee42 --- /dev/null +++ b/Documentation/nvme-wdc-vs-cloud-log.txt @@ -0,0 +1,52 @@ +nvme-wdc-vs-cloud-log(1) +======================== + +NAME +---- +nvme-wdc-vs-cloud-log - Send NVMe WDC vs-cloud-log Vendor Unique Command, return result + +SYNOPSIS +-------- +[verse] +'nvme wdc vs-cloud-log' [--output-format= -o ] + [--namespace-id= | -n ] + +DESCRIPTION +----------- +For the NVMe device given, send a Vendor Unique WDC vs-cloud-log command and +provide the smart/health log. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0) or block device (ex: /dev/nvme0n1). + +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 +------- +-o :: +--output-format=:: + Set the reporting format to 'normal', or + 'json'. Only one output format can be used at a time. + Default is normal. + +-n :: +--namespace-id=:: + Sets the command's nsid value to the given nsid. Defaults to + 0xffffffff if not given. This option may not affect anything + depending on the log page, which may or may not be specific to + a namespace. + +EXAMPLES +-------- +* Has the program issue WDC vs-cloud-log Vendor Unique Command : ++ +------------ +# nvme wdc vs-cloud-log /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite. diff --git a/Documentation/nvme-wdc-vs-device-waf.1 b/Documentation/nvme-wdc-vs-device-waf.1 new file mode 100644 index 0000000..76235e8 --- /dev/null +++ b/Documentation/nvme-wdc-vs-device-waf.1 @@ -0,0 +1,84 @@ +'\" t +.\" Title: nvme-wdc-vs-device-waf +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/14/2022 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-WDC\-VS\-DEVIC" "1" "07/14/2022" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-wdc-vs-device-waf \- Calculates the device write amplification factor and prints both TLC and SLC results +.SH "SYNOPSIS" +.sp +.nf +\fInvme wdc vs\-device\-waf\fR [\-\-output\-format= \-o ] + [\-\-namespace\-id= | \-n ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, calculates the device TLC and SLC write amplification factor\&. +.sp +The 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 +On success it returns 0, error code otherwise\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +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 +\-n , \-\-namespace\-id= +.RS 4 +Sets the command\(cqs nsid value to the given nsid\&. Defaults to 0xffffffff if not given\&. This option may not affect anything depending on the log page, which may or may not be specific to a namespace\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Has the program issue WDC vs\-device\-waf plugin Command : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc vs\-device\-waf /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite\&. diff --git a/Documentation/nvme-wdc-vs-device-waf.html b/Documentation/nvme-wdc-vs-device-waf.html new file mode 100644 index 0000000..93075ab --- /dev/null +++ b/Documentation/nvme-wdc-vs-device-waf.html @@ -0,0 +1,835 @@ + + + + + + +nvme-wdc-vs-device-waf(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc vs-device-waf <device> [--output-format=<normal|json> -o <normal|json>]
+                        [--namespace-id=<nsid> | -n <nsid>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, calculates the device TLC and SLC write +amplification factor.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0) or block device (ex: /dev/nvme0n1).

+

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

+
+
+
+-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. +

+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Sets the command’s nsid value to the given nsid. Defaults to + 0xffffffff if not given. This option may not affect anything + depending on the log page, which may or may not be specific to + a namespace. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program issue WDC vs-device-waf plugin Command : +

    +
    +
    +
    # nvme wdc vs-device-waf /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite.

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-vs-device-waf.txt b/Documentation/nvme-wdc-vs-device-waf.txt new file mode 100644 index 0000000..55095a4 --- /dev/null +++ b/Documentation/nvme-wdc-vs-device-waf.txt @@ -0,0 +1,53 @@ +nvme-wdc-vs-device-waf(1) +========================= + +NAME +---- +nvme-wdc-vs-device-waf - Calculates the device write amplification factor and +prints both TLC and SLC results + +SYNOPSIS +-------- +[verse] +'nvme wdc vs-device-waf' [--output-format= -o ] + [--namespace-id= | -n ] + +DESCRIPTION +----------- +For the NVMe device given, calculates the device TLC and SLC write +amplification factor. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0) or block device (ex: /dev/nvme0n1). + +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 +------- +-o :: +--output-format=:: + Set the reporting format to 'normal', or + 'json'. Only one output format can be used at a time. + Default is normal. + +-n :: +--namespace-id=:: + Sets the command's nsid value to the given nsid. Defaults to + 0xffffffff if not given. This option may not affect anything + depending on the log page, which may or may not be specific to + a namespace. + +EXAMPLES +-------- +* Has the program issue WDC vs-device-waf plugin Command : ++ +------------ +# nvme wdc vs-device-waf /dev/nvme0 +------------ + +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 638188c..518a89f 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: 04/08/2022 +.\" Date: 07/14/2022 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" -.TH "NVME\-WDC\-VS\-DRIVE" "1" "04/08/2022" "NVMe" "NVMe Manual" +.TH "NVME\-WDC\-VS\-DRIVE" "1" "07/14/2022" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -45,11 +45,17 @@ This will only work on WDC devices supporting this feature\&. Results for any ot On success it returns 0, error code otherwise\&. .SH "OUTPUT EXPLANATION" .sp -There are 2 fields returned from this command: +There are several different fields returned from this command depending on the drive: .sp Drive HW Revision .sp FTL Unit Size +.sp +Customer Serial Number +.sp +HyperScale Boot Version +.sp +TCG Device Ownership .SH "EXAMPLE" .sp # nvme wdc vs\-drive\-info /dev/nvme0 diff --git a/Documentation/nvme-wdc-vs-drive-info.html b/Documentation/nvme-wdc-vs-drive-info.html index afb487a..f060e21 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) + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc vs-hw-rev-log <device> [--output-format=<normal|json> -o <normal|json>]
+                        [--namespace-id=<nsid> | -n <nsid>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, retrieves and formats the Vendor Unique WDC hw revision log page.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0) or block device (ex: /dev/nvme0n1).

+

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

+
+
+
+-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. +

+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Sets the command’s nsid value to the given nsid. Defaults to + 0xffffffff if not given. This option may not affect anything + depending on the log page, which may or may not be specific to + a namespace. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program issue WDC vs-hw-rev-log plugin Command : +

    +
    +
    +
    # nvme wdc vs-hw-rev-log /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite.

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-vs-hw-rev-log.txt b/Documentation/nvme-wdc-vs-hw-rev-log.txt new file mode 100644 index 0000000..c5335d9 --- /dev/null +++ b/Documentation/nvme-wdc-vs-hw-rev-log.txt @@ -0,0 +1,51 @@ +nvme-wdc-vs-hw-rev-log(1) +========================= + +NAME +---- +nvme-wdc-vs-hw-rev-log - Send NVMe WDC vs-hw-rev-log Vendor Unique Command, return result + +SYNOPSIS +-------- +[verse] +'nvme wdc vs-hw-rev-log' [--output-format= -o ] + [--namespace-id= | -n ] + +DESCRIPTION +----------- +For the NVMe device given, retrieves and formats the Vendor Unique WDC hw revision log page. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0) or block device (ex: /dev/nvme0n1). + +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 +------- +-o :: +--output-format=:: + Set the reporting format to 'normal', or + 'json'. Only one output format can be used at a time. + Default is normal. + +-n :: +--namespace-id=:: + Sets the command's nsid value to the given nsid. Defaults to + 0xffffffff if not given. This option may not affect anything + depending on the log page, which may or may not be specific to + a namespace. + +EXAMPLES +-------- +* Has the program issue WDC vs-hw-rev-log plugin Command : ++ +------------ +# nvme wdc vs-hw-rev-log /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite. diff --git a/Documentation/nvme-wdc-vs-internal-log.1 b/Documentation/nvme-wdc-vs-internal-log.1 index 1a557e3..a44671c 100644 --- a/Documentation/nvme-wdc-vs-internal-log.1 +++ b/Documentation/nvme-wdc-vs-internal-log.1 @@ -2,12 +2,12 @@ .\" Title: nvme-wdc-vs-internal-log .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 04/08/2022 +.\" Date: 07/14/2022 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" -.TH "NVME\-WDC\-VS\-INTER" "1" "04/08/2022" "NVMe" "NVMe Manual" +.TH "NVME\-WDC\-VS\-INTER" "1" "07/14/2022" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/Documentation/nvme-wdc-vs-internal-log.html b/Documentation/nvme-wdc-vs-internal-log.html index ef6e70e..0f0319a 100644 --- a/Documentation/nvme-wdc-vs-internal-log.html +++ b/Documentation/nvme-wdc-vs-internal-log.html @@ -4,7 +4,7 @@ - + nvme-wdc-vs-internal-log(1)