From 316e846c86489310dd774ece4e26b23fc8b53473 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 16 Feb 2025 12:16:19 +0100 Subject: [PATCH] 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 +- .../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 +- .../nvme-fid-support-effects-log.html | 6 +- .../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 +- .../nvme-mi-cmd-support-effects-log.1 | 4 +- .../nvme-mi-cmd-support-effects-log.html | 4 +- Documentation/nvme-micron-clear-pcie-errors.1 | 6 +- .../nvme-micron-clear-pcie-errors.html | 6 +- .../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 +- .../nvme-micron-selective-download.1 | 4 +- .../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 +- .../nvme-micron-temperature-stats.html | 8 +- .../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 +- .../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 +- .../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 +- ...me-toshiba-clear-pcie-correctable-errors.1 | 4 +- ...toshiba-clear-pcie-correctable-errors.html | 4 +- Documentation/nvme-toshiba-vs-internal-log.1 | 4 +- .../nvme-toshiba-vs-internal-log.html | 4 +- Documentation/nvme-toshiba-vs-smart-add-log.1 | 4 +- .../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 +- .../nvme-wdc-clear-fw-activate-history.1 | 4 +- .../nvme-wdc-clear-fw-activate-history.html | 4 +- .../nvme-wdc-clear-pcie-correctable-errors.1 | 4 +- ...vme-wdc-clear-pcie-correctable-errors.html | 4 +- .../nvme-wdc-cloud-SSD-plugin-version.1 | 4 +- .../nvme-wdc-cloud-SSD-plugin-version.html | 4 +- ...on.1 => nvme-wdc-cloud-boot-SSD-version.1} | 16 +- ...l => nvme-wdc-cloud-boot-SSD-version.html} | 22 +- .../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 +- .../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 +- .../nvme-wdc-get-error-recovery-log.1 | 4 +- .../nvme-wdc-get-error-recovery-log.html | 4 +- .../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 +- .../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 +- .../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 +- ...s-nand-stats.1 => nvme-wdc-vs-cloud-log.1} | 26 +- ...-stats.html => nvme-wdc-vs-cloud-log.html} | 42 +- Documentation/nvme-wdc-vs-cloud-log.txt | 52 + ...-nand-stats.1 => nvme-wdc-vs-device-waf.1} | 26 +- ...stats.html => nvme-wdc-vs-device-waf.html} | 42 +- 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 +- .../nvme-wdc-vs-fw-activate-history.1 | 10 +- .../nvme-wdc-vs-fw-activate-history.html | 10 +- .../nvme-wdc-vs-fw-activate-history.txt | 6 +- ...-nand-stats.1 => nvme-wdc-vs-hw-rev-log.1} | 26 +- ...stats.html => nvme-wdc-vs-hw-rev-log.html} | 41 +- 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 +- ...me-wdc-vs-telemetry-controller-option.html | 4 +- Documentation/nvme-wdc-vs-temperature-stats.1 | 4 +- .../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 + .../update-docs.sh | 1 + 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 | 393 ++-- 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 + .../solidigm/solidigm-garbage-collection.c | 111 + .../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 | 1892 +++++++++++++++-- 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 +- 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 | 121 +- util/meson.build | 3 +- util/parser.c | 284 --- util/parser.h | 34 - util/suffix.c | 1 + util/suffix.h | 1 + wrapper.c | 22 + 504 files changed, 6751 insertions(+), 2957 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/release.yml copy Documentation/{nvme-wdc-cloud-SSD-plugin-version.1 => nvme-wdc-cloud-boot-SSD-version.1} (78%) copy Documentation/{nvme-wdc-cloud-SSD-plugin-version.html => nvme-wdc-cloud-boot-SSD-version.html} (92%) create mode 100644 Documentation/nvme-wdc-cloud-boot-SSD-version.txt copy Documentation/{nvme-wdc-vs-nand-stats.1 => nvme-wdc-vs-cloud-log.1} (64%) copy Documentation/{nvme-wdc-vs-nand-stats.html => nvme-wdc-vs-cloud-log.html} (89%) create mode 100644 Documentation/nvme-wdc-vs-cloud-log.txt copy Documentation/{nvme-wdc-vs-nand-stats.1 => nvme-wdc-vs-device-waf.1} (65%) copy Documentation/{nvme-wdc-vs-nand-stats.html => nvme-wdc-vs-device-waf.html} (89%) create mode 100644 Documentation/nvme-wdc-vs-device-waf.txt copy Documentation/{nvme-wdc-vs-nand-stats.1 => nvme-wdc-vs-hw-rev-log.1} (64%) copy Documentation/{nvme-wdc-vs-nand-stats.html => nvme-wdc-vs-hw-rev-log.html} (89%) create mode 100644 Documentation/nvme-wdc-vs-hw-rev-log.txt rename update-docs.sh => Documentation/update-docs.sh (85%) 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 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)