From: Stanislav Fomichev <sdf.kernel@gmail.com>
To: Nilay Shroff <nilay@linux.ibm.com>
Cc: kbusch@kernel.org, hch@lst.de, hare@suse.de, sagi@grimberg.me,
chaitanyak@nvidia.com, gjoyce@linux.ibm.com, kuba@kernel.org,
davem@davemloft.net, edumazet@google.com, pabeni@redhat.com,
horms@kernel.org, linux-nvme@lists.infradead.org,
netdev@vger.kernel.org
Subject: Re: [RESEND PATCH v2 0/4] nvme-tcp: NIC topology aware I/O queue scaling and queue info export
Date: Fri, 31 Jul 2026 09:39:19 -0700 [thread overview]
Message-ID: <amzPgFs4whuvrnUW@devvm7509.cco0.facebook.com> (raw)
In-Reply-To: <20260731073918.614014-1-nilay@linux.ibm.com>
On 07/31, Nilay Shroff wrote:
> Hi,
>
> This is a resend of the previous series to include the networking maintainers
> and mailing list. There are no code or commit message changes since the
> previous posting.
>
> This series has been updated based on the feedback received during LSFMM.
> The changelog is updated accordingly.
>
> The NVMe/TCP host driver currently provisions I/O queues primarily based
> on CPU availability rather than the capabilities and topology of the
> underlying network interface.
>
> On modern systems with many CPUs but fewer NIC hardware queues, this can
> lead to multiple NVMe/TCP I/O workers contending for the same TX/RX queue,
> resulting in increased lock contention, cacheline bouncing, and degraded
> throughput.
>
> This RFC proposes a set of changes to better align NVMe/TCP I/O queues
> with NIC queue resources, and to expose queue/flow information to enable
> more effective system-level tuning.
>
> Key ideas
> ---------
>
> 1. Scale NVMe/TCP I/O queues based on NIC queue count
> Instead of relying solely on CPU count, limit the number of I/O workers
> to:
> min(num_online_cpus, netdev->real_num_{tx,rx}_queues)
>
> 2. Improve CPU locality
> Align NVMe/TCP I/O workers with CPUs associated with NIC IRQ affinity
> to reduce cross-CPU traffic and improve cache locality.
>
> 3. Expose queue and flow information via debugfs
> Export per-I/O queue information including:
> - queue id (qid)
> - CPU affinity
> - TCP flow (src/dst IP and ports)
[..]
> This enables userspace tools to configure:
> - IRQ affinity
> - RPS/XPS
> - ntuple steering
> - or any other scaling as deemed feasible
Can you expand on this a bit? What specifically helped the most for your
tuned case?
prev parent reply other threads:[~2026-07-31 16:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 7:39 [RESEND PATCH v2 0/4] nvme-tcp: NIC topology aware I/O queue scaling and queue info export Nilay Shroff
2026-07-31 7:39 ` [RESEND PATCH v2 1/4] net: add helper for device lookup by destination address Nilay Shroff
2026-07-31 7:39 ` [RESEND PATCH v2 2/4] nvme-tcp: limit I/O queue count based on NIC queue count Nilay Shroff
2026-07-31 16:41 ` Stanislav Fomichev
2026-07-31 7:39 ` [RESEND PATCH v2 3/4] nvme: add debugfs helpers for NVMe drivers Nilay Shroff
2026-07-31 8:14 ` Maurizio Lombardi
2026-07-31 7:39 ` [RESEND PATCH v2 4/4] nvme: expose queue information via debugfs Nilay Shroff
2026-07-31 16:39 ` Stanislav Fomichev [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=amzPgFs4whuvrnUW@devvm7509.cco0.facebook.com \
--to=sdf.kernel@gmail.com \
--cc=chaitanyak@nvidia.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gjoyce@linux.ibm.com \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=horms@kernel.org \
--cc=kbusch@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=netdev@vger.kernel.org \
--cc=nilay@linux.ibm.com \
--cc=pabeni@redhat.com \
--cc=sagi@grimberg.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.