NVMe Command Quiesce Time
NVMe Command Quiesce Time is an Identify Controller field reporting the expected worst-case time needed to quiesce outstanding commands after communication loss.
Base 2.3 defines CQT in Identify Controller bytes 387:386, in one-millisecond units. Zero means that the time is not reported, not that quiescence is instantaneous; a controller requiring no time should report one millisecond. [1]
Communication-loss detection and subsequent command quiescence are separate stages. CQT is not the Keep Alive Timeout, a per-command latency limit or the host's reconnection retry budget. Keep the timer's owner and starting event with any recorded value. [1]
Hesela's interpretation: stopping outstanding processing does not show that earlier effects were undone or that a write became durable. Retain command completion and recovery evidence rather than treating elapsed CQT as a successful write acknowledgment. [1]
Base 2.3 section 9.6.2.1 separates detection from the additional quiescence wait. Its time-based detection paths use 2 * KATT after the last submitted Keep Alive command, or 3 * KATT after the last submitted command for traffic-based operation. These assume transport delay of at most one KATT, the controller's Keep Alive timeout interval. They are not unconditional failover deadlines. [1]
Relations
- related
- NVMe Keep Alive, I/O timeout, NVMe Abort
Limitations
- An unreported CQT cannot be interpreted as a zero-duration quiescence guarantee. [1]