nvme-controller-shutdown · shipping · also NVMe shutdown notification, CC.SHN, CSTS.SHST

NVMe controller shutdown

NVMe controller shutdown is a host-requested protocol that prepares a controller for power removal and reports progress separately from the initiating notification.

Related Observatory article: NVMe controller shutdown on hesela.com

The host sets CC.SHN to 01b for normal shutdown or 10b for abrupt shutdown. Abrupt shutdown is still signaled, not an unexpected removal of power. For normal PCIe shutdown of an enabled controller, stop new I/O and allow outstanding commands to complete; delete I/O queues if implemented before notification. Controller-shutdown completion is CSTS.SHST = 10b with CSTS.ST = 0; sending CC.SHN alone is insufficient. Base 2.3 recommends waiting at least the reported RTD3 Entry Latency, or one second if zero; a minimum wait is not proof of completion. [1]

Power scope matters: CAP.CPS can require every controller in a domain or NVM subsystem to be ready before power removal. Controller shutdown is distinct from the separately specified NVM Subsystem Shutdown mechanism. A Controller Level Reset may preserve readiness or reinitialize media; qualifying out-of-band media access can also invalidate readiness. [1]

Transitioning CC.EN from 1 to 0 requests a Controller Reset, not shutdown. Linux v6.12 waits on SHST for shutdown but RDY for reset, and its wait routine reports an error on timeout. A host timeout is not observed controller completion. [2]

Relations

related
NVMe, NVMe Unexpected Power Losses, NVMe volatile write cache, NVM subsystem, Power loss protection

Limitations

  • A completed device protocol does not certify application transaction atomicity or recover writes that never reached the controller. [1]

Citations

  1. NVM Express Base 2.3, sections 3.6-3.7, Figures 41, 42 and 85: notification, completion, power scope and reset. (accessed 2026-11-13)
  2. Linux v6.12, drivers/nvme/host/core.c: nvme_disable_ctrl and nvme_wait_ready. (accessed 2026-11-13)

Further reading

  1. Hesela: NVMe health-log interpretation and controller power-off readiness. (accessed 2026-11-13)

JSON: /data/terms/nvme-controller-shutdown.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. NVMe controller shutdown. Hesela. 2026-11-13. https://hesela.dev/terms/nvme-controller-shutdown/