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.