Re: [PATCH v5 16/16] nvme: Add support for CQT to nvme host

From: Hannes Reinecke

Date: Mon Jul 13 2026 - 03:39:01 EST


On 7/12/26 4:23 AM, Mohamed Khalfella wrote:
TP4129 KATO Corrections and Clarifications defined CQT (Command Quiesce
Time) which is used along with KATO (Keep Alive Timeout) to set an upper
limit for attempting Cross-Controller Recovery. Add ctrl->cqt, read its
value from controller identify response, expose it via sysfs, and have
nvme_fence_timeout_ms() account for it.

Use CQT to drive time-based recovery in fc, rdma, and tcp transports.
Add a fenced_work delayed work to each transport controller. If CCR
fails, fencing_work switches to error recovery immediately if CQT is not
supported. Otherwise it schedules fenced_work after the remaining fence
timeout, which also switches to error recovery when scheduled.

Signed-off-by: Mohamed Khalfella <mkhalfella@xxxxxxxxxxxxxxx>
---
drivers/nvme/host/core.c | 1 +
drivers/nvme/host/fc.c | 41 +++++++++++++++++++++++++++++++++++----
drivers/nvme/host/nvme.h | 5 +++--
drivers/nvme/host/rdma.c | 41 +++++++++++++++++++++++++++++++++++----
drivers/nvme/host/sysfs.c | 2 ++
drivers/nvme/host/tcp.c | 41 +++++++++++++++++++++++++++++++++++----
6 files changed, 117 insertions(+), 14 deletions(-)

Reviewed-by: Hannes Reinecke <hare@xxxxxxxxxx>

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +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