nvme-keep-alive · shipping · also NVMe Keep Alive Timeout, KATO, Traffic Based Keep Alive

NVMe Keep Alive

NVMe Keep Alive is a watchdog mechanism for detecting loss of communication between a host and controller through command-based or traffic-based operation.

Related Observatory article: NVMe Keep Alive on hesela.com

Base 2.3 distinguishes command-based Keep Alive from traffic-based Keep Alive. In traffic-based operation, commands fetched by the controller can satisfy its activity check; this is not proof that a particular write completed. [1]

The protocol's Keep Alive Timeout (KATO) uses milliseconds; the controller rounds KATO upward to its reported granularity when necessary. In contrast, nvme-cli v2.11's nvme connect --keep-alive-tmo uses seconds. Its reconnect-delay and ctrl-loss-tmo are separate connection-recovery settings, also in seconds. [1] [2]

Linux v6.12 can skip issuing a Keep Alive command when traffic-based support and observed completion activity permit it. Absence of periodic Keep Alive commands in a busy trace therefore does not by itself prove that the watchdog is disabled. This is a source-code inference, not a device experiment. [3]

In the same function, a failed request allocation logs keep-alive failed and requests a controller reset before submitting that Keep Alive command. That message alone is not evidence of an unanswered on-wire command; retain its error value and surrounding recovery context. [3]

Relations

related
NVMe over Fabrics, I/O timeout, NVMe Command Quiesce Time

Limitations

  • Communication-loss detection does not establish the outcome or durability of an individual write. [1]

Citations

  1. NVM Express Base 2.3 (2025): sections 3.9, 5.2.1.1 and 9.6.2.1; Figures 328 and 416, Keep Alive, KATO and Command Quiesce Time. (accessed 2026-11-08)
  2. nvme-cli v2.11: nvme-connect options, keep-alive-tmo, reconnect-delay and ctrl-loss-tmo. (accessed 2026-11-08)
  3. Linux v6.12: nvme_keep_alive_work(), nvme_keep_alive_work_period() and nvme_update_keep_alive(). (accessed 2026-11-08)

JSON: /data/terms/nvme-keep-alive.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. NVMe Keep Alive. Hesela. 2026-11-08. https://hesela.dev/terms/nvme-keep-alive/