Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jul 2025 04:00:50 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 35b2e888ef0f - main - nvme: Finish removing failed request queue
Message-ID:  <202507220400.56M40o5W032406@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=35b2e888ef0f69ebfdca37f3741846f1ed82f657

commit 35b2e888ef0f69ebfdca37f3741846f1ed82f657
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2025-07-18 20:52:36 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-07-22 04:00:33 +0000

    nvme: Finish removing failed request queue
    
    Remove the failed request queue, it's been unused since bc85cd303c44
    when we removed the last function that referenced it. Also adjust
    the comment for the reset taskqueue. We still start 2 threads.
    
    Sponsored by:           Netflix
---
 sys/dev/nvme/nvme_ctrlr.c   | 10 ++--------
 sys/dev/nvme/nvme_private.h |  2 --
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c
index 73a7cee4aad0..c86316337e93 100644
--- a/sys/dev/nvme/nvme_ctrlr.c
+++ b/sys/dev/nvme/nvme_ctrlr.c
@@ -1574,13 +1574,8 @@ nvme_ctrlr_construct(struct nvme_controller *ctrlr, device_t dev)
 	/*
 	 * Create 2 threads for the taskqueue. The reset thread will block when
 	 * it detects that the controller has failed until all I/O has been
-	 * failed up the stack. The fail_req task needs to be able to run in
-	 * this case to finish the request failure for some cases.
-	 *
-	 * We could partially solve this race by draining the failed requeust
-	 * queue before proceding to free the sim, though nothing would stop
-	 * new I/O from coming in after we do that drain, but before we reach
-	 * cam_sim_free, so this big hammer is used instead.
+	 * failed up the stack. The second thread used to be for failing
+	 * requests.
 	 */
 	ctrlr->taskqueue = taskqueue_create("nvme_taskq", M_WAITOK,
 	    taskqueue_thread_enqueue, &ctrlr->taskqueue);
@@ -1590,7 +1585,6 @@ nvme_ctrlr_construct(struct nvme_controller *ctrlr, device_t dev)
 	ctrlr->is_initialized = false;
 	ctrlr->notification_sent = 0;
 	TASK_INIT(&ctrlr->reset_task, 0, nvme_ctrlr_reset_task, ctrlr);
-	STAILQ_INIT(&ctrlr->fail_req);
 	ctrlr->is_failed = false;
 
 	make_dev_args_init(&md_args);
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h
index 949e69ec9290..0340b13b7de5 100644
--- a/sys/dev/nvme/nvme_private.h
+++ b/sys/dev/nvme/nvme_private.h
@@ -307,8 +307,6 @@ struct nvme_controller {
 	bool				isr_warned;
 	bool				is_initialized;
 
-	STAILQ_HEAD(, nvme_request)	fail_req;
-
 	/* Host Memory Buffer */
 	int				hmb_nchunks;
 	size_t				hmb_chunk;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202507220400.56M40o5W032406>