From: Edward Cree <ecree.xilinx@gmail.com>
To: Jakub Kicinski <kuba@kernel.org>,
Martin Habets <habetsm.xilinx@gmail.com>
Cc: "Íñigo Huguet" <ihuguet@redhat.com>,
davem@davemloft.net, edumazet@google.com, pabeni@redhat.com,
netdev@vger.kernel.org, linux-net-drivers@amd.com,
"Fei Liu" <feliu@redhat.com>
Subject: Re: [PATCH net] sfc: use budget for TX completions
Date: Thu, 15 Jun 2023 01:36:17 +0100 [thread overview]
Message-ID: <a4e26da4-cb09-7537-60ff-fd00ec4c49d6@gmail.com> (raw)
In-Reply-To: <20230614102744.71c91f20@kernel.org>
On 14/06/2023 18:27, Jakub Kicinski wrote:
> The documentation is pretty recent. I haven't seen this lockup once
> in production or testing. Do multiple queues complete on the same CPU
> for SFC or something weird like that?
I think the key question here is can one CPU be using a TXQ to send
while another CPU is in a NAPI poll on the same channel and thus
trying to clean the EVQ that the TXQ is using. If so the NAPI poll
could last forever; if not then it shouldn't ever have more than 8k
(or whatever the TX ring size is set to) events to process.
And even ignoring affinity of the core TXQs, at the very least XDP
TXQs can serve different CPUs to the one on which their EVQ (and
hence NAPI poll) lives, which means they can keep filling the EVQ
as fast as the NAPI poll empties it, and thus keep ev_process
looping forever.
In principle this can also happen with other kinds of events, e.g.
if the MC goes crazy and generates infinite MCDI-event spam then
NAPI poll will spin on that CPU forever eating the events. So
maybe this limit needs to be broader than just TX events? A hard
cap on the number of events (regardless of type) that can be
consumed in a single efx_ef10_ev_process() invocation, perhaps?
-ed
next prev parent reply other threads:[~2023-06-15 0:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-12 14:42 [PATCH net] sfc: use budget for TX completions Íñigo Huguet
2023-06-12 16:04 ` Maciej Fijalkowski
2023-06-13 14:42 ` Íñigo Huguet
2023-06-14 8:10 ` Martin Habets
2023-06-14 10:13 ` Íñigo Huguet
2023-06-14 17:31 ` Jakub Kicinski
2023-06-15 8:08 ` Martin Habets
2023-06-14 8:03 ` Martin Habets
2023-06-14 17:27 ` Jakub Kicinski
2023-06-15 0:36 ` Edward Cree [this message]
2023-06-15 4:04 ` Jakub Kicinski
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=a4e26da4-cb09-7537-60ff-fd00ec4c49d6@gmail.com \
--to=ecree.xilinx@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=feliu@redhat.com \
--cc=habetsm.xilinx@gmail.com \
--cc=ihuguet@redhat.com \
--cc=kuba@kernel.org \
--cc=linux-net-drivers@amd.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).