Re: [PATCH v2] nvme-tcp: pin io_cpu to submitter cpu

Saravanan D <[email protected]>
Newsgroups org.infradead.lists.linux-nvme,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Fri, 21 Aug 2026 21:17:49 +0530 Nilay Shroff <[email protected]> wrote:
> It seems that here multi tenants shares the same NVMe/TCP controller.
> So if the concern is CPU isolation between tenants, why are multiple
> tenants sharing the same NVMe/TCP controller? Wouldn't a per-tenant
> controller/connection provide better isolation and allow each
> controller's queues to be mapped to the tenant's CPU set?

The controllers are shared because the tenant VMs' virtio-blk devices 
are backed by namespaces under one multipath subsystem the hypervisor host
connects to. With many VMs per host, maintaining a per-tenant controller
is not always feasible because of the overhead on the host and risk of
running into target connection limits. blk-mq spreads any controller's
queues across every online CPU, so nvme_tcp_set_queue_io_cpu() picks io_cpu
from a machine wide map whether the controller is shared or dedicated.
Tying socket work to the submitting CPU will reduce VM steal time in 
these deployment scenarios.

Saravanan D.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.