[PATCH] nvme-tcp: Fix I/O queue cpu spreading for multiple controllers
Christoph Hellwig
hch at lst.de
Thu Jan 2 22:55:26 PST 2025
On Tue, Dec 24, 2024 at 02:04:57PM +0200, Sagi Grimberg wrote:
> Since day-1 we are assigning the queue io_cpu very naively. We always
> base the queue id (controller scope) and assign it its matching cpu
> from the online mask. This works fine when the number of queues match
> the number of cpu cores.
>
> The problem starts when we have less queues than cpu cores. First, we
> should take into account the mq_map and select a cpu within the cpus
> that are assigned to this queue by the mq_map in order to minimize cross
> numa cpu bouncing.
>
> Second, even worse is that we don't take into account multiple controllers
Nit: your commit log is overflowing 73 characters in a few places.
> static void nvme_tcp_set_queue_io_cpu(struct nvme_tcp_queue *queue)
Can you add a comment extracted from the commit log before this
function explaining the logic?
More information about the Linux-nvme
mailing list