[PATCH v2] nvme: Let the blocklayer set timeouts for requests
Keith Busch
kbusch at kernel.org
Thu Dec 4 08:13:35 PST 2025
On Thu, Dec 04, 2025 at 02:11:50PM +0000, Heyne, Maximilian wrote:
> @@ -724,10 +724,8 @@ void nvme_init_request(struct request *req, struct nvme_command *cmd)
> struct nvme_ns *ns = req->q->disk->private_data;
>
> logging_enabled = ns->head->passthru_err_log_enabled;
> - req->timeout = NVME_IO_TIMEOUT;
> } else { /* no queuedata implies admin queue */
> logging_enabled = nr->ctrl->passthru_err_log_enabled;
> - req->timeout = NVME_ADMIN_TIMEOUT;
> }
I was trying to think of any in-kernel path using __submit_sync_cmd with
an IO queue, and quick search shows there's just one: zns report zones.
Everything else uses the admin queue, which doesn't have a sysfs tunable
for its request_queue's default timeout. All we have is the nvme module
parameter, which is writable after loading. Since that's the only way a
user can modify the default time for that queue, I think we need to
leave that req->timeout value as-is.
More information about the Linux-nvme
mailing list