[PATCH v3 18/21] nvme: Update CCR completion wait timeout to consider CQT
Hannes Reinecke
hare at suse.de
Mon Feb 16 04:54:18 PST 2026
On 2/14/26 05:25, Mohamed Khalfella wrote:
> TP8028 Rapid Path Failure Recovery does not define how much time the
> host should wait for CCR operation to complete. It is reasonable to
> assume that CCR operation can take up to ctrl->cqt. Update wait time for
> CCR operation to be max(ctrl->cqt, ctrl->kato).
>
> Signed-off-by: Mohamed Khalfella <mkhalfella at purestorage.com>
> ---
> drivers/nvme/host/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 0680d05900c1..ff479c0263ab 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -631,7 +631,7 @@ static int nvme_issue_wait_ccr(struct nvme_ctrl *sctrl, struct nvme_ctrl *ictrl)
> if (result & 0x01) /* Immediate Reset Successful */
> goto out;
>
> - tmo = secs_to_jiffies(ictrl->kato);
> + tmo = msecs_to_jiffies(max(ictrl->cqt, ictrl->kato * 1000));
> if (!wait_for_completion_timeout(&ccr.complete, tmo)) {
> ret = -ETIMEDOUT;
> goto out;
That is not my understanding. I was under the impression that CQT is the
_additional_ time a controller requires to clear out outstanding
commands once it detected a loss of communication (ie _after_ KATO).
Which would mean we have to wait for up to
(ctrl->kato * 1000) + ctrl->cqt.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare at suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich
More information about the Linux-nvme
mailing list