From c0fbec1eb4bf13bbd8b24273937de091231cd066 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 20 Mar 2025 08:10:40 +0100 Subject: [PATCH] Adding upstream version 2.12. Signed-off-by: Daniel Baumann --- .checkpatch.conf | 24 + .github/workflows/coverage.yml | 5 +- .github/workflows/run-nightly-tests.yml | 49 +- Documentation/cmd-plugins.txt | 33 + Documentation/meson.build | 1 + Documentation/nvme-admin-passthru.1 | 4 +- Documentation/nvme-admin-passthru.html | 4 +- Documentation/nvme-ana-log.1 | 4 +- Documentation/nvme-ana-log.html | 4 +- Documentation/nvme-attach-ns.1 | 8 +- Documentation/nvme-attach-ns.html | 8 +- Documentation/nvme-attach-ns.txt | 5 +- Documentation/nvme-ave-discovery-log.txt | 51 + 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 +- .../nvme-changed-alloc-ns-list-log.txt | 67 + 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 | 4 +- Documentation/nvme-compare.html | 4 +- Documentation/nvme-connect-all.1 | 4 +- Documentation/nvme-connect-all.html | 4 +- Documentation/nvme-connect.1 | 4 +- Documentation/nvme-connect.html | 4 +- Documentation/nvme-copy.1 | 4 +- Documentation/nvme-copy.html | 4 +- Documentation/nvme-create-ns.1 | 8 +- Documentation/nvme-create-ns.html | 10 +- Documentation/nvme-create-ns.txt | 6 +- Documentation/nvme-dapustor-smart-log-add.1 | 4 +- .../nvme-dapustor-smart-log-add.html | 4 +- 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 | 4 +- Documentation/nvme-device-self-test.html | 4 +- Documentation/nvme-dim.1 | 4 +- Documentation/nvme-dim.html | 4 +- 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 | 4 +- Documentation/nvme-discover.html | 4 +- ...vme-dispersed-ns-participating-nss-log.txt | 55 + 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-fdp-configs.1 | 4 +- Documentation/nvme-fdp-configs.html | 4 +- Documentation/nvme-fdp-events.1 | 4 +- Documentation/nvme-fdp-events.html | 4 +- Documentation/nvme-fdp-feature.1 | 86 ++ ...-close-zone.html => nvme-fdp-feature.html} | 76 +- Documentation/nvme-fdp-feature.txt | 56 + Documentation/nvme-fdp-set-events.1 | 4 +- Documentation/nvme-fdp-set-events.html | 4 +- Documentation/nvme-fdp-stats.1 | 4 +- Documentation/nvme-fdp-stats.html | 4 +- Documentation/nvme-fdp-status.1 | 4 +- Documentation/nvme-fdp-status.html | 4 +- Documentation/nvme-fdp-update.1 | 4 +- Documentation/nvme-fdp-update.html | 4 +- Documentation/nvme-fdp-usage.1 | 4 +- Documentation/nvme-fdp-usage.html | 4 +- Documentation/nvme-fid-support-effects-log.1 | 4 +- .../nvme-fid-support-effects-log.html | 4 +- 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 | 4 +- Documentation/nvme-fw-commit.html | 4 +- Documentation/nvme-fw-download.1 | 4 +- Documentation/nvme-fw-download.html | 4 +- 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-get-reg.txt | 3 + Documentation/nvme-help.1 | 4 +- Documentation/nvme-help.html | 4 +- Documentation/nvme-host-discovery-log.txt | 57 + 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 | 4 +- Documentation/nvme-id-domain.html | 4 +- Documentation/nvme-id-iocs.1 | 4 +- Documentation/nvme-id-iocs.html | 4 +- Documentation/nvme-id-ns.1 | 4 +- Documentation/nvme-id-ns.html | 4 +- Documentation/nvme-id-nvmset.1 | 4 +- Documentation/nvme-id-nvmset.html | 4 +- Documentation/nvme-inspur-nvme-vendor-log.1 | 4 +- .../nvme-inspur-nvme-vendor-log.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-mgmt-recv.1 | 4 +- Documentation/nvme-io-mgmt-recv.html | 4 +- Documentation/nvme-io-mgmt-send.1 | 4 +- Documentation/nvme-io-mgmt-send.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 | 4 +- Documentation/nvme-list-ns.html | 4 +- Documentation/nvme-list-subsys.1 | 4 +- Documentation/nvme-list-subsys.html | 4 +- Documentation/nvme-list.1 | 4 +- Documentation/nvme-list.html | 4 +- Documentation/nvme-lockdown.1 | 4 +- Documentation/nvme-lockdown.html | 4 +- Documentation/nvme-mgmt-addr-list-log.txt | 47 + .../nvme-mi-cmd-support-effects-log.1 | 4 +- .../nvme-mi-cmd-support-effects-log.html | 4 +- Documentation/nvme-micron-clear-pcie-errors.1 | 4 +- .../nvme-micron-clear-pcie-errors.html | 4 +- Documentation/nvme-micron-internal-log.1 | 4 +- Documentation/nvme-micron-internal-log.html | 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 | 4 +- .../nvme-micron-temperature-stats.html | 4 +- Documentation/nvme-netapp-ontapdevices.1 | 11 +- Documentation/nvme-netapp-ontapdevices.html | 17 +- Documentation/nvme-netapp-ontapdevices.txt | 6 +- Documentation/nvme-netapp-smdevices.1 | 11 +- Documentation/nvme-netapp-smdevices.html | 17 +- Documentation/nvme-netapp-smdevices.txt | 6 +- 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-nvme-mi-recv.1 | 4 +- Documentation/nvme-nvme-mi-recv.html | 4 +- Documentation/nvme-nvme-mi-send.1 | 4 +- Documentation/nvme-nvme-mi-send.html | 4 +- .../nvme-ocp-clear-fw-activate-history.1 | 4 +- .../nvme-ocp-clear-fw-activate-history.html | 4 +- ...cp-clear-pcie-correctable-error-counters.1 | 4 +- ...clear-pcie-correctable-error-counters.html | 4 +- .../nvme-ocp-device-capability-log.1 | 4 +- .../nvme-ocp-device-capability-log.html | 4 +- Documentation/nvme-ocp-eol-plp-failure-mode.1 | 4 +- .../nvme-ocp-eol-plp-failure-mode.html | 4 +- Documentation/nvme-ocp-error-recovery-log.1 | 4 +- .../nvme-ocp-error-recovery-log.html | 4 +- .../nvme-ocp-get-dssd-async-event-config.1 | 4 +- .../nvme-ocp-get-dssd-async-event-config.html | 4 +- .../nvme-ocp-get-dssd-power-state-feature.1 | 4 +- ...nvme-ocp-get-dssd-power-state-feature.html | 4 +- .../nvme-ocp-get-plp-health-check-interval.1 | 4 +- ...vme-ocp-get-plp-health-check-interval.html | 4 +- .../nvme-ocp-hardware-component-log.txt | 4 +- Documentation/nvme-ocp-internal-log.1 | 11 +- Documentation/nvme-ocp-internal-log.html | 9 +- Documentation/nvme-ocp-internal-log.txt | 5 +- Documentation/nvme-ocp-latency-monitor-log.1 | 4 +- .../nvme-ocp-latency-monitor-log.html | 4 +- .../nvme-ocp-set-dssd-async-event-config.1 | 4 +- .../nvme-ocp-set-dssd-async-event-config.html | 4 +- .../nvme-ocp-set-dssd-power-state-feature.1 | 4 +- ...nvme-ocp-set-dssd-power-state-feature.html | 4 +- .../nvme-ocp-set-plp-health-check-interval.1 | 4 +- ...vme-ocp-set-plp-health-check-interval.html | 4 +- .../nvme-ocp-set-telemetry-profile.1 | 4 +- .../nvme-ocp-set-telemetry-profile.html | 4 +- Documentation/nvme-ocp-smart-add-log.1 | 16 +- Documentation/nvme-ocp-smart-add-log.html | 18 +- Documentation/nvme-ocp-smart-add-log.txt | 10 +- .../nvme-ocp-telemetry-string-log-page.1 | 4 +- .../nvme-ocp-telemetry-string-log-page.html | 4 +- Documentation/nvme-ocp-unsupported-reqs-log.1 | 4 +- .../nvme-ocp-unsupported-reqs-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 | 4 +- .../nvme-pred-lat-event-agg-log.html | 4 +- Documentation/nvme-predictable-lat-log.1 | 4 +- Documentation/nvme-predictable-lat-log.html | 4 +- Documentation/nvme-primary-ctrl-caps.1 | 4 +- Documentation/nvme-primary-ctrl-caps.html | 4 +- Documentation/nvme-pull-model-ddr-req-log.txt | 51 + .../nvme-reachability-associations-log.txt | 56 + .../nvme-reachability-groups-log.txt | 56 + Documentation/nvme-read.1 | 4 +- Documentation/nvme-read.html | 4 +- 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 +- .../nvme-rotational-media-info-log.txt | 52 + Documentation/nvme-rpmb.1 | 4 +- Documentation/nvme-rpmb.html | 4 +- Documentation/nvme-sanitize-log.1 | 4 +- Documentation/nvme-sanitize-log.html | 4 +- Documentation/nvme-sanitize.1 | 4 +- Documentation/nvme-sanitize.html | 4 +- .../nvme-seagate-clear-fw-activate-history.1 | 4 +- ...vme-seagate-clear-fw-activate-history.html | 4 +- ...me-seagate-clear-pcie-correctable-errors.1 | 4 +- ...seagate-clear-pcie-correctable-errors.html | 4 +- .../nvme-seagate-cloud-SSD-plugin-version.1 | 4 +- ...nvme-seagate-cloud-SSD-plugin-version.html | 4 +- Documentation/nvme-seagate-get-ctrl-tele.1 | 4 +- Documentation/nvme-seagate-get-ctrl-tele.html | 4 +- Documentation/nvme-seagate-get-host-tele.1 | 4 +- Documentation/nvme-seagate-get-host-tele.html | 4 +- Documentation/nvme-seagate-help.1 | 4 +- Documentation/nvme-seagate-help.html | 4 +- Documentation/nvme-seagate-plugin-version.1 | 4 +- .../nvme-seagate-plugin-version.html | 4 +- Documentation/nvme-seagate-version.1 | 4 +- Documentation/nvme-seagate-version.html | 4 +- .../nvme-seagate-vs-fw-activate-history.1 | 4 +- .../nvme-seagate-vs-fw-activate-history.html | 4 +- Documentation/nvme-seagate-vs-internal-log.1 | 4 +- .../nvme-seagate-vs-internal-log.html | 4 +- Documentation/nvme-seagate-vs-log-page-sup.1 | 4 +- .../nvme-seagate-vs-log-page-sup.html | 4 +- Documentation/nvme-seagate-vs-pcie-stats.1 | 4 +- Documentation/nvme-seagate-vs-pcie-stats.html | 4 +- Documentation/nvme-seagate-vs-smart-add-log.1 | 4 +- .../nvme-seagate-vs-smart-add-log.html | 4 +- .../nvme-seagate-vs-temperature-stats.1 | 4 +- .../nvme-seagate-vs-temperature-stats.html | 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 | 4 +- Documentation/nvme-self-test-log.html | 4 +- Documentation/nvme-set-feature.1 | 4 +- Documentation/nvme-set-feature.html | 4 +- Documentation/nvme-set-property.1 | 4 +- Documentation/nvme-set-property.html | 4 +- Documentation/nvme-set-reg.txt | 3 + 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-show-topology.1 | 4 +- Documentation/nvme-show-topology.html | 4 +- Documentation/nvme-smart-log.1 | 4 +- Documentation/nvme-smart-log.html | 4 +- .../nvme-solidigm-clear-fw-activate-history.1 | 4 +- ...me-solidigm-clear-fw-activate-history.html | 4 +- ...e-solidigm-clear-pcie-correctable-errors.1 | 4 +- ...olidigm-clear-pcie-correctable-errors.html | 4 +- .../nvme-solidigm-cloud-SSDplugin-version.1 | 4 +- ...nvme-solidigm-cloud-SSDplugin-version.html | 4 +- .../nvme-solidigm-garbage-collect-log.1 | 4 +- .../nvme-solidigm-garbage-collect-log.html | 4 +- Documentation/nvme-solidigm-id-ctrl.1 | 4 +- Documentation/nvme-solidigm-id-ctrl.html | 4 +- .../nvme-solidigm-latency-tracking-log.1 | 4 +- .../nvme-solidigm-latency-tracking-log.html | 4 +- .../nvme-solidigm-log-page-directory.1 | 4 +- .../nvme-solidigm-log-page-directory.html | 4 +- Documentation/nvme-solidigm-market-log.1 | 4 +- Documentation/nvme-solidigm-market-log.html | 4 +- .../nvme-solidigm-parse-telemetry-log.1 | 4 +- .../nvme-solidigm-parse-telemetry-log.html | 4 +- Documentation/nvme-solidigm-smart-log-add.1 | 4 +- .../nvme-solidigm-smart-log-add.html | 4 +- Documentation/nvme-solidigm-temp-stats.1 | 4 +- Documentation/nvme-solidigm-temp-stats.html | 4 +- Documentation/nvme-solidigm-vs-drive-info.1 | 4 +- .../nvme-solidigm-vs-drive-info.html | 4 +- .../nvme-solidigm-vs-fw-activate-history.1 | 4 +- .../nvme-solidigm-vs-fw-activate-history.html | 4 +- Documentation/nvme-solidigm-vs-internal-log.1 | 4 +- .../nvme-solidigm-vs-internal-log.html | 4 +- .../nvme-solidigm-vs-smart-add-log.1 | 4 +- .../nvme-solidigm-vs-smart-add-log.html | 4 +- .../nvme-solidigm-workload-tracker.1 | 4 +- .../nvme-solidigm-workload-tracker.html | 4 +- Documentation/nvme-subsystem-reset.1 | 4 +- Documentation/nvme-subsystem-reset.html | 4 +- Documentation/nvme-supported-log-pages.1 | 4 +- Documentation/nvme-supported-log-pages.html | 4 +- Documentation/nvme-telemetry-log.1 | 4 +- Documentation/nvme-telemetry-log.html | 4 +- Documentation/nvme-tls-key.1 | 4 +- Documentation/nvme-tls-key.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 | 4 +- Documentation/nvme-transcend-healthvalue.html | 4 +- Documentation/nvme-verify.1 | 4 +- Documentation/nvme-verify.html | 4 +- .../nvme-virtium-save-smart-to-vtview-log.1 | 4 +- ...nvme-virtium-save-smart-to-vtview-log.html | 4 +- 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 +- .../nvme-wdc-cloud-boot-SSD-version.1 | 4 +- .../nvme-wdc-cloud-boot-SSD-version.html | 4 +- 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 | 4 +- Documentation/nvme-wdc-get-drive-status.html | 4 +- .../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 | 4 +- Documentation/nvme-wdc-namespace-resize.html | 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 | 4 +- Documentation/nvme-wdc-vs-cloud-log.html | 4 +- Documentation/nvme-wdc-vs-device-waf.1 | 4 +- Documentation/nvme-wdc-vs-device-waf.html | 4 +- Documentation/nvme-wdc-vs-drive-info.1 | 4 +- Documentation/nvme-wdc-vs-drive-info.html | 4 +- .../nvme-wdc-vs-error-reason-identifier.1 | 4 +- .../nvme-wdc-vs-error-reason-identifier.html | 4 +- .../nvme-wdc-vs-fw-activate-history.1 | 4 +- .../nvme-wdc-vs-fw-activate-history.html | 4 +- Documentation/nvme-wdc-vs-hw-rev-log.1 | 4 +- Documentation/nvme-wdc-vs-hw-rev-log.html | 4 +- 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 | 4 +- Documentation/nvme-write-uncor.html | 4 +- Documentation/nvme-write-zeroes.1 | 11 +- Documentation/nvme-write-zeroes.html | 17 +- Documentation/nvme-write-zeroes.txt | 5 +- Documentation/nvme-write.1 | 4 +- Documentation/nvme-write.html | 4 +- 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 | 4 +- Documentation/nvme-zns-id-ns.html | 4 +- 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 | 4 +- Documentation/nvme-zns-set-zone-desc.html | 4 +- Documentation/nvme-zns-zone-append.1 | 4 +- Documentation/nvme-zns-zone-append.html | 4 +- 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.1 | 59 +- Documentation/nvme.html | 92 +- Makefile | 24 +- completions/_nvme | 201 ++- completions/bash-nvme-completion.sh | 99 +- fabrics.c | 32 +- meson.build | 4 +- nbft.c | 46 +- nvme-builtin.h | 11 +- nvme-print-binary.c | 64 +- nvme-print-json.c | 562 ++++++-- nvme-print-stdout.c | 1279 ++++++++++++----- nvme-print.c | 226 ++- nvme-print.h | 42 +- nvme-wrap.c | 67 +- nvme-wrap.h | 29 +- nvme.c | 1110 +++++++++++++- nvme.h | 2 +- nvme.spec.in | 1 + .../udev-rules/70-nvmf-keys.rules.in | 2 +- .../udev-rules/71-nvmf-netapp.rules.in | 4 +- plugins/amzn/amzn-nvme.c | 221 +++ plugins/amzn/amzn-nvme.h | 1 + plugins/dapustor/dapustor-nvme.c | 4 +- plugins/fdp/fdp.c | 108 ++ plugins/fdp/fdp.h | 3 +- plugins/huawei/huawei-nvme.c | 4 + plugins/intel/intel-nvme.c | 8 +- plugins/lm/lm-nvme.c | 669 +++++++++ plugins/lm/lm-nvme.h | 30 + plugins/lm/lm-print-binary.c | 25 + plugins/lm/lm-print-json.c | 109 ++ plugins/lm/lm-print-stdout.c | 145 ++ plugins/lm/lm-print.c | 38 + plugins/lm/lm-print.h | 31 + plugins/lm/meson.build | 12 + plugins/meson.build | 61 +- plugins/micron/micron-nvme.c | 37 +- plugins/nbft/nbft-plugin.c | 4 + plugins/netapp/netapp-nvme.c | 318 +++- plugins/ocp/ocp-clear-features.c | 12 +- plugins/ocp/ocp-fw-activation-history.c | 4 +- plugins/ocp/ocp-fw-activation-history.h | 3 +- plugins/ocp/ocp-hardware-component-log.c | 57 +- plugins/ocp/ocp-hardware-component-log.h | 2 +- plugins/ocp/ocp-nvme.c | 230 +-- plugins/ocp/ocp-nvme.h | 47 +- plugins/ocp/ocp-print-binary.c | 7 +- plugins/ocp/ocp-print-json.c | 408 +++++- plugins/ocp/ocp-print-stdout.c | 230 +-- plugins/ocp/ocp-print.c | 5 +- plugins/ocp/ocp-print.h | 6 +- plugins/ocp/ocp-smart-extended-log.c | 32 +- plugins/ocp/ocp-smart-extended-log.h | 175 ++- plugins/ocp/ocp-telemetry-decode.c | 162 ++- plugins/ocp/ocp-telemetry-decode.h | 287 +++- plugins/ocp/ocp-types.h | 13 + plugins/ocp/ocp-utils.c | 22 + plugins/ocp/ocp-utils.h | 3 +- plugins/scaleflux/sfx-nvme.c | 712 +++++++-- plugins/scaleflux/sfx-nvme.h | 1 + plugins/scaleflux/sfx-types.h | 189 +++ plugins/seagate/seagate-nvme.c | 40 +- plugins/sed/sed.c | 37 +- plugins/sed/sedopal_cmd.c | 666 ++++++++- plugins/sed/sedopal_cmd.h | 4 + plugins/sed/sedopal_spec.h | 321 ++++- plugins/solidigm/solidigm-internal-logs.c | 82 +- plugins/solidigm/solidigm-log-page-dir.c | 1 + plugins/solidigm/solidigm-nvme.h | 2 +- plugins/solidigm/solidigm-telemetry/config.c | 2 +- plugins/ssstc/ssstc-nvme.c | 4 +- plugins/virtium/virtium-nvme.c | 6 +- plugins/wdc/wdc-nvme.c | 425 +++++- plugins/wdc/wdc-nvme.h | 2 +- plugins/wdc/wdc-utils.c | 2 +- scripts/build.sh | 9 +- subprojects/json-c.wrap | 18 +- subprojects/libnvme.wrap | 2 +- tests/nvme_attach_detach_ns_test.py | 3 - tests/nvme_compare_test.py | 11 +- tests/nvme_copy_test.py | 49 +- tests/nvme_create_max_ns_test.py | 16 +- tests/nvme_ctrl_reset_test.py | 2 +- tests/nvme_dsm_test.py | 7 +- tests/nvme_flush_test.py | 4 +- tests/nvme_format_test.py | 65 +- tests/nvme_fw_log_test.py | 8 +- tests/nvme_get_features_test.py | 14 +- tests/nvme_get_lba_status_test.py | 18 +- tests/nvme_id_ns_test.py | 13 +- tests/nvme_lba_status_log_test.py | 8 +- tests/nvme_smart_log_test.py | 10 +- tests/nvme_test.py | 231 ++- tests/nvme_test_io.py | 19 +- tests/nvme_verify_test.py | 22 +- tests/nvme_writeuncor_test.py | 6 +- tests/nvme_writezeros_test.py | 6 +- util/argconfig.h | 6 + util/json.c | 63 + util/json.h | 61 +- util/logging.c | 5 +- util/logging.h | 14 +- util/types.c | 23 +- util/types.h | 5 +- util/utils.c | 10 +- 571 files changed, 10718 insertions(+), 2738 deletions(-) create mode 100644 .checkpatch.conf create mode 100644 Documentation/nvme-ave-discovery-log.txt create mode 100644 Documentation/nvme-changed-alloc-ns-list-log.txt create mode 100644 Documentation/nvme-dispersed-ns-participating-nss-log.txt create mode 100644 Documentation/nvme-fdp-feature.1 copy Documentation/{nvme-zns-close-zone.html => nvme-fdp-feature.html} (86%) create mode 100644 Documentation/nvme-fdp-feature.txt create mode 100644 Documentation/nvme-host-discovery-log.txt create mode 100644 Documentation/nvme-mgmt-addr-list-log.txt create mode 100644 Documentation/nvme-pull-model-ddr-req-log.txt create mode 100644 Documentation/nvme-reachability-associations-log.txt create mode 100644 Documentation/nvme-reachability-groups-log.txt create mode 100644 Documentation/nvme-rotational-media-info-log.txt create mode 100644 plugins/lm/lm-nvme.c create mode 100644 plugins/lm/lm-nvme.h create mode 100644 plugins/lm/lm-print-binary.c create mode 100644 plugins/lm/lm-print-json.c create mode 100644 plugins/lm/lm-print-stdout.c create mode 100644 plugins/lm/lm-print.c create mode 100644 plugins/lm/lm-print.h create mode 100644 plugins/lm/meson.build create mode 100644 plugins/ocp/ocp-types.h create mode 100644 plugins/scaleflux/sfx-types.h diff --git a/.checkpatch.conf b/.checkpatch.conf new file mode 100644 index 0000000..aacb982 --- /dev/null +++ b/.checkpatch.conf @@ -0,0 +1,24 @@ +# Checkpatch options. +# REF: https://docs.kernel.org/dev-tools/checkpatch.html + +# This isn't actually a Linux kernel tree +--no-tree + +--max-line-length=100 + +--ignore EMAIL_SUBJECT + +# FILE_PATH_CHANGES reports this kind of message: +# "added, moved or deleted file(s), does MAINTAINERS need updating?" +--ignore FILE_PATH_CHANGES + + +# Commit messages might contain a Gerrit Change-Id. +--ignore GERRIT_CHANGE_ID + +# Do not check the format of commit messages, as Gerrit's merge commits do not +# preserve it. +--ignore GIT_COMMIT_ID + +# Avoid "Does not appear to be a unified-diff format patch" message +--ignore NOT_UNIFIED_DIFF diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 20c69fa..a743d03 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -17,6 +17,7 @@ jobs: - name: build run: | scripts/build.sh coverage - - uses: codecov/codecov-action@v4 + - uses: codecov/codecov-action@v5 with: - fail_ci_if_error: false + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: true diff --git a/.github/workflows/run-nightly-tests.yml b/.github/workflows/run-nightly-tests.yml index d525986..e8ac232 100644 --- a/.github/workflows/run-nightly-tests.yml +++ b/.github/workflows/run-nightly-tests.yml @@ -9,39 +9,25 @@ on: jobs: nightly-tests: runs-on: nvme-nvm + container: + image: ghcr.io/linux-nvme/debian.python:latest + #Expose all devices to the container through the `privileged` flag. + # + #BDEV0 is an environment variable of the self-hosted runner instance + #that contains a valid nvme ctrl name which is capable of the nvm + #command set. + options: '--privileged -v "/dev":"/dev":z -e BDEV0' steps: - name: Output kernel version run: | uname -a - - name: Clean up test device - run: | - #BDEV0 is an environment variable of the self-hosted runner instance - #that contains a valid nvme ctrl name which is capable of the nvm - #command set. - CONTROLLER=$(echo /dev/${BDEV0} | sed 's/n[0-9]*$//') - sudo nvme delete-ns $CONTROLLER -n 0xffffffff - sudo nvme format $CONTROLLER -n 0xffffffff -l 0 -f - SIZE=$(sudo nvme id-ctrl $CONTROLLER --output-format=json | jq -r '{tnvmcap} | .[]' | awk '{print $1/512}') - sudo nvme create-ns -s $SIZE -c $SIZE -f 0 -d 0 --csi=0 $CONTROLLER - sudo nvme attach-ns $CONTROLLER -n 1 -c 0 - uses: actions/checkout@v4 - name: Install dependencies run: | - sudo apt-get update - sudo apt-get install --no-install-recommends -y \ - meson gcc pkg-config git libjson-c-dev libssl-dev libkeyutils-dev \ - libdbus-1-dev libpython3-dev pipx python3-dev swig xz-utils - pipx ensurepath - sudo PIPX_BIN_DIR=/usr/local/bin pipx install nose2 - sudo PIPX_BIN_DIR=/usr/local/bin pipx install flake8 - sudo PIPX_BIN_DIR=/usr/local/bin pipx install mypy - sudo PIPX_BIN_DIR=/usr/local/bin pipx install autopep8 - sudo PIPX_BIN_DIR=/usr/local/bin pipx install isort + PIPX_BIN_DIR=/usr/local/bin pipx install nose2 --force - name: Build and install nvme-cli run: | scripts/build.sh -b release -c gcc - sudo meson install -C .build-ci - sudo ldconfig /usr/local/lib64 - name: Overwrite test config run: | CONTROLLER=$(echo /dev/${BDEV0} | sed 's/n[0-9]*$//') @@ -49,12 +35,14 @@ jobs: { "controller" : "$CONTROLLER", "ns1": "/dev/${BDEV0}", - "log_dir": "tests/nvmetests/" + "log_dir": "tests/nvmetests/", + "nvme_bin": "$(pwd)/.build-ci/nvme" } EOF + cat tests/config.json - name: Run on device tests run: | - sudo nose2 --verbose --start-dir tests \ + nose2 --verbose --start-dir tests \ nvme_attach_detach_ns_test \ nvme_compare_test \ nvme_copy_test \ @@ -79,15 +67,6 @@ jobs: uses: actions/upload-artifact@v4 if: always() with: - name: logs files + name: nvme-cli-test-logs path: | ./tests/nvmetests/**/*.log - - name: Clean up test device - if: always() - run: | - CONTROLLER=$(echo /dev/${BDEV0} | sed 's/n[0-9]*$//') - sudo nvme delete-ns $CONTROLLER -n 0xffffffff - sudo nvme format $CONTROLLER -n 0xffffffff -l 0 -f - SIZE=$(sudo nvme id-ctrl $CONTROLLER --output-format=json | jq -r '{tnvmcap} | .[]' | awk '{print $1/512}') - sudo nvme create-ns -s $SIZE -c $SIZE -f 0 -d 0 --csi=0 $CONTROLLER - sudo nvme attach-ns $CONTROLLER -n 1 -c 0 diff --git a/Documentation/cmd-plugins.txt b/Documentation/cmd-plugins.txt index 2e80bfc..ee77408 100644 --- a/Documentation/cmd-plugins.txt +++ b/Documentation/cmd-plugins.txt @@ -207,3 +207,36 @@ linknvme:nvme-inspur-nvme-vendor-log[1]:: linknvme:nvme-dapustor-smart-log-add[1]:: NVMe DapuStor Additional SMART log page + +linknvme:nvme-solidigm-id-ctrl[1]:: + Solidigm - NVMe Identify Controller + +linknvme:nvme-solidigm-smart-log-add[1]:: + Retrieve Solidigm SMART Log + +linknvme:nvme-solidigm-vs-internal-log[1]:: + Retrieve Debug log binaries + +linknvme:nvme-solidigm-garbage-collect-log[1]:: + Retrieve Garbage Collection Log + +linknvme:nvme-solidigm-market-log[1]:: + Retrieve Market Log + +linknvme:nvme-solidigm-latency-tracking-log[1]:: + Enable/Retrieve Latency tracking Log + +linknvme:nvme-solidigm-parse-telemetry-log[1]:: + Parse Telemetry Log binary + +linknvme:nvme-solidigm-log-page-directory[1]:: + Retrieve log page directory + +linknvme:nvme-solidigm-temp-stats[1]:: + Retrieve Temperature Statistics log + +linknvme:nvme-solidigm-vs-drive-info[1]:: + Retrieve drive information + +linknvme:nvme-solidigm-workload-tracker[1]:: + Real Time capture Workload Tracker samples diff --git a/Documentation/meson.build b/Documentation/meson.build index 65495e3..e81db8c 100644 --- a/Documentation/meson.build +++ b/Documentation/meson.build @@ -32,6 +32,7 @@ adoc_sources = [ 'nvme-error-log', 'nvme-fdp-configs', 'nvme-fdp-events', + 'nvme-fdp-feature', 'nvme-fdp-set-events', 'nvme-fdp-stats', 'nvme-fdp-status', diff --git a/Documentation/nvme-admin-passthru.1 b/Documentation/nvme-admin-passthru.1 index 25576c9..075816d 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: 10/31/2024 +.\" Date: 03/17/2025 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" -.TH "NVME\-ADMIN\-PASSTHR" "1" "10/31/2024" "NVMe" "NVMe Manual" +.TH "NVME\-ADMIN\-PASSTHR" "1" "03/17/2025" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/Documentation/nvme-admin-passthru.html b/Documentation/nvme-admin-passthru.html index 1ae7d89..84eacca 100644 --- a/Documentation/nvme-admin-passthru.html +++ b/Documentation/nvme-admin-passthru.html @@ -4,7 +4,7 @@ - + nvme-admin-passthru(1)