From: Julien Blais <webmaster@jbsky.fr>
To: thomas.petazzoni@bootlin.com, davem@davemloft.net,
kuba@kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Julien Blais <webmaster@jbsky.fr>
Subject: [PATCH v2] mvneta: fix "napi poll" infinite loop
Date: Wed, 11 Sep 2024 13:28:46 +0200 [thread overview]
Message-ID: <20240911112846.285033-1-webmaster@jbsky.fr> (raw)
In percpu mode, when there's a network load, one of the cpus can be
solicited without having anything to process.
If 0 is returned to napi poll, napi will ignore the next requests,
causing an infinite loop with ISR handling.
Without this change, patches hang around fixing the queue at 0 and
the interrupt remains stuck on the 1st CPU.
The percpu conf is useless in this case, so we might as well remove it.
Signed-off-by: Julien Blais <webmaster@jbsky.fr>
---
drivers/net/ethernet/marvell/mvneta.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 3f124268b..b6e89b888 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -3186,7 +3186,10 @@ static int mvneta_poll(struct napi_struct *napi, int budget)
if (rx_done < budget) {
cause_rx_tx = 0;
- napi_complete_done(napi, rx_done);
+ if (rx_done)
+ napi_complete_done(napi, rx_done);
+ else
+ napi_complete(napi);
if (pp->neta_armada3700) {
unsigned long flags;
--
2.39.2
--
This e-mail and any attached files are confidential and may be legally privileged. If you are not the addressee, any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is strictly prohibited. If you have received this transmission in error please notify the sender immediately and then delete this mail.
E-mail transmission cannot be guaranteed to be secure or error free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission or changes to transmitted date not specifically approved by the sender.
If this e-mail or attached files contain information which do not relate to our professional activity we do not accept liability for such information.
next reply other threads:[~2024-09-11 11:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-11 11:28 Julien Blais [this message]
2024-09-11 12:41 ` [PATCH v2] mvneta: fix "napi poll" infinite loop Maxime Chevallier
2024-09-11 15:20 ` Jakub Kicinski
2024-09-11 18:45 ` Julien Blais
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=20240911112846.285033-1-webmaster@jbsky.fr \
--to=webmaster@jbsky.fr \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=thomas.petazzoni@bootlin.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).