[PATCH 0/2] nvme-tcp: parallelize I/O queue connect

From: Surabhi Gogte

Date: Mon Aug 24 2026 - 18:29:59 EST


Similar to commit 2a8513091d2f ("nvme-rdma: parallelize I/O queue
allocation and startup"), I/O queue allocation and start steps
(including authentication) can be parallelized for nvme-tcp as well.

Patch 1 is a preparatory refactor: it splits the queue-count
negotiation and TLS PSK checks into helpers so that the individual
steps can be called directly from nvme_tcp_configure_io_queues(). No
functional change.

Patch 2 has the async implementation: it fans the per-queue alloc and
start out over an async domain, serializes the per-cpu queue-count in
nvme_tcp_set_queue_io_cpu() that can now run concurrently, and
switches sock_create_kern() to init_net.

Testing on a 64-core host with 64 IO-queues shows nvme-tcp connection
time reduced from 61ms to 11ms.

Surabhi Gogte (2):
nvme-tcp: refactor I/O queue setup path
nvme-tcp: parallelize I/O queue allocation and startup

drivers/nvme/host/tcp.c | 143 +++++++++++++++++++++++++++-------------
1 file changed, 96 insertions(+), 47 deletions(-)

--
2.55.0