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

Surabhi Gogte sgogte at purestorage.com
Mon Aug 24 15:56:46 PDT 2026


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.

---
v2:
  - Resending the entire series to fix missing numbering in the
    original patch 2 subject line. No functional code changes.
---

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 | 139 +++++++++++++++++++++++++++-------------
 1 file changed, 93 insertions(+), 46 deletions(-)

-- 
2.55.0




More information about the Linux-nvme mailing list