[PATCH v7 0/2] nvme-tcp: allow setting per-queue io_cpu through sysfs

Saravanan D saravanand at crusoe.ai
Wed Nov 4 06:06:28 PST 2026


On hosts that partition their CPUs after connect time, the connect
time io_cpu selection can place a queue's socket work on CPUs owned by
another workload. This series lets a control plane set each queue's
io_cpu through /sys/class/nvme/nvmeX/queues/<qid>/. Patch 1 adds the
core helpers, patch 2 the nvme-tcp attributes.

Changes since v6 [1]:
- nvme-core now owns the queues directory. A transport lists its queue
  attributes in the new queue_attr_groups member of struct
  nvme_ctrl_ops, nvme_add_ctrl() creates the directory for it, and
  nvme_uninit_ctrl() removes it through the new
  nvme_queue_dir_destroy() helper (Nilay).
- Rebased onto the current nvme-7.4.

A blktests patch, nvme/077, covers the interface and follows in this
thread.

[1] https://lore.kernel.org/linux-nvme/20261023230426.6425-1-saravanand@crusoe.ai/

Saravanan D (2):
  nvme: add per-queue sysfs directories
  nvme-tcp: allow setting per-queue io_cpu through sysfs

 Documentation/ABI/stable/sysfs-nvme |  31 ++++++
 drivers/nvme/host/core.c            |  12 ++
 drivers/nvme/host/nvme.h            |  25 +++++
 drivers/nvme/host/sysfs.c           |  88 +++++++++++++++
 drivers/nvme/host/tcp.c             | 167 ++++++++++++++++++++++++----
 5 files changed, 303 insertions(+), 20 deletions(-)


base-commit: ca7e6a9a693240f059a0b47726f64a3f0573011a
-- 
2.56.0




More information about the Linux-nvme mailing list