From: Eric Dumazet <edumazet@google.com>
To: "David S . Miller" <davem@davemloft.net>
Cc: netdev <netdev@vger.kernel.org>,
Willem de Bruijn <willemb@google.com>,
Adam Belay <abelay@google.com>, Zach Brown <zach.brown@ni.com>,
Tariq Toukan <tariqt@mellanox.com>,
Yuval Mintz <Yuval.Mintz@cavium.com>,
Ariel Elior <ariel.elior@cavium.com>,
Eric Dumazet <edumazet@google.com>,
Eric Dumazet <eric.dumazet@gmail.com>
Subject: [PATCH net-next 5/5] bnx2x: switch to napi_complete_done()
Date: Tue, 15 Nov 2016 10:15:15 -0800 [thread overview]
Message-ID: <1479233715-9905-6-git-send-email-edumazet@google.com> (raw)
In-Reply-To: <1479233715-9905-1-git-send-email-edumazet@google.com>
Switch from napi_complete() to napi_complete_done()
for better GRO support (gro_flush_timeout) and core NAPI
features.
Do not rearm interrupts if we are busy polling,
to reduce bus and interrupts overhead.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Cc: Adam Belay <abelay@google.com>
Cc: Tariq Toukan <tariqt@mellanox.com>
Cc: Yuval Mintz <Yuval.Mintz@cavium.com>
Cc: Ariel Elior <ariel.elior@cavium.com>
---
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index ed42c1009685..3fd36b421d51 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -3248,13 +3248,14 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
rmb();
if (!(bnx2x_has_rx_work(fp) || bnx2x_has_tx_work(fp))) {
- napi_complete(napi);
- /* Re-enable interrupts */
- DP(NETIF_MSG_RX_STATUS,
- "Update index to %d\n", fp->fp_hc_idx);
- bnx2x_ack_sb(bp, fp->igu_sb_id, USTORM_ID,
- le16_to_cpu(fp->fp_hc_idx),
- IGU_INT_ENABLE, 1);
+ if (napi_complete_done(napi, rx_work_done)) {
+ /* Re-enable interrupts */
+ DP(NETIF_MSG_RX_STATUS,
+ "Update index to %d\n", fp->fp_hc_idx);
+ bnx2x_ack_sb(bp, fp->igu_sb_id, USTORM_ID,
+ le16_to_cpu(fp->fp_hc_idx),
+ IGU_INT_ENABLE, 1);
+ }
} else {
rx_work_done = budget;
}
--
2.8.0.rc3.226.g39d4020
next prev parent reply other threads:[~2016-11-15 18:16 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-15 18:15 [PATCH net-next 0/5] net: busy-poll: allow preemption and other optimizations Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 1/5] net: busy-poll: allow preemption in sk_busy_loop() Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 2/5] net: busy-poll: remove need_resched() from sk_can_busy_loop() Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 3/5] net: busy-poll: return busypolling status to drivers Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 4/5] net/mlx4_en: use napi_complete_done() return value Eric Dumazet
2016-11-15 18:15 ` Eric Dumazet [this message]
2016-11-16 18:03 ` [PATCH net-next 0/5] net: busy-poll: allow preemption and other optimizations John Fastabend
2016-11-16 18:41 ` David Miller
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=1479233715-9905-6-git-send-email-edumazet@google.com \
--to=edumazet@google.com \
--cc=Yuval.Mintz@cavium.com \
--cc=abelay@google.com \
--cc=ariel.elior@cavium.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=tariqt@mellanox.com \
--cc=willemb@google.com \
--cc=zach.brown@ni.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).