[PATCH V3 4/8] nvme: add sysfs attribute to change IO timeout per nvme controller
Daniel Wagner
dwagner at suse.de
Mon Apr 27 02:11:21 PDT 2026
On Fri, Apr 10, 2026 at 09:39:20AM +0200, Maurizio Lombardi wrote:
> Currently, there is no method to adjust the timeout values on a
> per controller basis with nvme I/O queues.
> Add an io_timeout attribute to nvme so that different nvme controllers
> which may have different timeout requirements can have custom
> I/O timeouts set.
>
> Signed-off-by: Maurizio Lombardi <mlombard at redhat.com>
> ---
> drivers/nvme/host/core.c | 2 ++
> drivers/nvme/host/nvme.h | 1 +
> drivers/nvme/host/sysfs.c | 47 +++++++++++++++++++++++++++++++++++++++
> 3 files changed, 50 insertions(+)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 6dc3d273623c..1b676fd4d454 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -4197,6 +4197,7 @@ static void nvme_alloc_ns(struct nvme_ctrl *ctrl, struct nvme_ns_info *info)
> mutex_unlock(&ctrl->namespaces_lock);
> goto out_unlink_ns;
> }
> + blk_queue_rq_timeout(ns->queue, ctrl->io_timeout);
> nvme_ns_add_to_ctrl_list(ns);
> mutex_unlock(&ctrl->namespaces_lock);
> synchronize_srcu(&ctrl->srcu);
> @@ -5136,6 +5137,7 @@ int nvme_init_ctrl(struct nvme_ctrl *ctrl, struct device *dev,
> ctrl->ka_cmd.common.opcode = nvme_admin_keep_alive;
> ctrl->ka_last_check_time = jiffies;
> ctrl->admin_timeout = NVME_ADMIN_TIMEOUT;
> + ctrl->io_timeout = NVME_IO_TIMEOUT;
Should this be initialized with the defaults from the module load time?
More information about the Linux-nvme
mailing list