Storage glossary · JSON corpus · llms.txt · hesela.com

nvme-device-self-test · shipping · also NVMe DST, NVMe short self-test, NVMe extended self-test

NVMe Device Self-test

NVMe Device Self-test is an optional controller-executed diagnostic capability with short and extended operations whose namespace scope is selected by the initiating command.

Support is advertised by Identify Controller OACS bit 4, not inferred from a readable SMART log. For short and extended operations (codes 1h and 2h), NSID 0 excludes namespaces, a valid active specific NSID includes that namespace, and 0xffffffff includes attached namespaces accessible through the controller at start. Base 2.3 also defines Host-Initiated Refresh (code 3h), which ignores NSID; this record focuses on diagnostic short/extended tests. [1] Command acceptance starts an operation; obtain its result from log 06h. nvme-cli v2.13 defaults to all namespaces and its --wait does not evaluate the newest result. The CLI treats omitted code or --self-test-code=0 as a log read, not submission of protocol-reserved code 0h; its status/wait paths inspect progress rather than a diagnostic verdict. [2] Background testing can affect performance. Base 2.3 requires a short operation to abort on a controller-level reset affecting the testing controller but an extended operation to persist and resume. [1]

Relations

related
nvme, nvme-smart-log, nvme-device-self-test-log

Limitations

Citations

  1. NVM Express Base 2.3: sections 5.2.5, 5.2.12.1.7 and 8.1.8; Figures 174-177, 215-216 and 328 (accessed 2026-10-15)
  2. nvme-cli v2.13: device_self_test and wait_self_test implementation (accessed 2026-10-15)
  3. nvme-cli v2.13: Device Self-test command, result retrieval and SIGINT behavior (accessed 2026-10-15)
  4. Hesela: NVMe self-test scope, result validity and diagnostic boundaries (accessed 2026-10-15)

JSON: /data/terms/nvme-device-self-test.json