NVMe Command Retry Delay
NVMe Command Retry Delay is a two-bit completion-status selector for retry timing when advanced command retry is enabled and Do Not Retry is clear.
Conditions: CRD is reserved if DNR=1 or Host Behavior Support ACRE=0. With DNR=0 and ACRE=1, 00b allows immediate retry; 01b, 10b and 11b select Identify Controller CRDT1, CRDT2 and CRDT3, each in 100 ms units. CRD is a selector, not a duration. [1]
Timing: The host should wait the selected interval, but an earlier retry is not a protocol error. This is not a completion deadline or a recovery guarantee. [1]
Implementation: Linux v6.12 nvme_retry_req indexes the selected CRDT value, multiplies it by 100 and requeues the request with a delay. This versioned function illustrates timing after a retry decision; it does not describe every host's retry policy. [2]
Relations
- related
- NVMe, NVMe completion queue, NVMe Do Not Retry, NVMe Error Information Log, I/O timeout, Retry budget
Citations
- NVM Express Base 2.3, section 4.2.3, Figure 100 and Identify Controller Figure 328: DNR, CRD and CRDT1-3
- Linux v6.12, nvme_retry_req: CRD selection, 100 ms conversion and requeue
Sources & caveats
- Based on Base 2.3 and a pinned Linux function; no host/device execution, latency measurement or success-rate claim.