Re: [PATCH v6 17/18] nvme: Add support for CQT to nvme host
From: Mohamed Khalfella
Date: Fri Oct 30 2026 - 16:06:38 EST
On Tue 2026-10-20 14:46:03 +0200, Daniel Wagner wrote:
> On Sun, Sep 20, 2026 at 11:28:15AM -0700, 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>
> > Reviewed-by: Hannes Reinecke <hare@xxxxxxxxxx>
> > Reviewed-by: Sagi Grimberg <sagi@xxxxxxxxxxx>
>
> the sysfs entry needs to be documented, with this
--- a/Documentation/ABI/stable/sysfs-nvme
+++ b/Documentation/ABI/stable/sysfs-nvme
@@ -120,6 +120,16 @@ Description:
Shows the Keep Alive Timeout value in milliseconds for
this controller.
+What: /sys/class/nvme/nvmeX/cqt
+Date: October 2026
+KernelVersion: 7.5
+Contact: Mohamed Khalfella <mkhalfella@xxxxxxxxxxxxxxx>
+Description:
+ Shows CQT (Command Quiesce Time) in milliseconds as reported
+ by the Identify Controller data structure. CQT is the time the
+ controller needs to quiesce outstanding commands once the
+ host loses communication with it.
+
What: /sys/class/nvme/nvmeX/cmb
Date: October 2016
KernelVersion: 4.9
Added the diff above to the patch.
>
> Reviewed-by: Daniel Wagner <dwagner@xxxxxxx>