From: Saeed Mahameed <saeedm@mellanox.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org,
Jesper Dangaard Brouer <brouer@redhat.com>,
Jonathan Lemon <bsd@fb.com>,
Maxim Mikityanskiy <maximmi@mellanox.com>,
Tariq Toukan <tariqt@mellanox.com>,
Saeed Mahameed <saeedm@mellanox.com>
Subject: [net-next V2 11/13] net/mlx5e: Take HW interrupt trigger into a function
Date: Tue, 23 Apr 2019 12:14:58 -0700 [thread overview]
Message-ID: <20190423191500.16632-12-saeedm@mellanox.com> (raw)
In-Reply-To: <20190423191500.16632-1-saeedm@mellanox.com>
From: Maxim Mikityanskiy <maximmi@mellanox.com>
mlx5e_trigger_irq posts a NOP to the ICO SQ just to trigger an IRQ and
enter the NAPI poll on the right CPU according to the affinity. Use it
in mlx5e_activate_rq.
Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 10 +---------
drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 11 +++++++++++
3 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h
index c190061763fd..7e0c3d4de108 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h
@@ -778,6 +778,7 @@ netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev);
netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
struct mlx5e_tx_wqe *wqe, u16 pi, bool xmit_more);
+void mlx5e_trigger_irq(struct mlx5e_icosq *sq);
void mlx5e_completion_event(struct mlx5_core_cq *mcq);
void mlx5e_cq_error_event(struct mlx5_core_cq *mcq, enum mlx5_event event);
int mlx5e_napi_poll(struct napi_struct *napi, int budget);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 1c328dbb6fe0..8ae17dcad487 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -877,16 +877,8 @@ static int mlx5e_open_rq(struct mlx5e_channel *c,
static void mlx5e_activate_rq(struct mlx5e_rq *rq)
{
- struct mlx5e_icosq *sq = &rq->channel->icosq;
- struct mlx5_wq_cyc *wq = &sq->wq;
- struct mlx5e_tx_wqe *nopwqe;
-
- u16 pi = mlx5_wq_cyc_ctr2ix(wq, sq->pc);
-
set_bit(MLX5E_RQ_STATE_ENABLED, &rq->state);
- sq->db.ico_wqe[pi].opcode = MLX5_OPCODE_NOP;
- nopwqe = mlx5e_post_nop(wq, sq->sqn, &sq->pc);
- mlx5e_notify_hw(wq, sq->pc, sq->uar_map, &nopwqe->ctrl);
+ mlx5e_trigger_irq(&rq->channel->icosq);
}
static void mlx5e_deactivate_rq(struct mlx5e_rq *rq)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c
index b4af5e19f6ac..f9862bf75491 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c
@@ -71,6 +71,17 @@ static void mlx5e_handle_rx_dim(struct mlx5e_rq *rq)
net_dim(&rq->dim, dim_sample);
}
+void mlx5e_trigger_irq(struct mlx5e_icosq *sq)
+{
+ struct mlx5_wq_cyc *wq = &sq->wq;
+ struct mlx5e_tx_wqe *nopwqe;
+ u16 pi = mlx5_wq_cyc_ctr2ix(wq, sq->pc);
+
+ sq->db.ico_wqe[pi].opcode = MLX5_OPCODE_NOP;
+ nopwqe = mlx5e_post_nop(wq, sq->sqn, &sq->pc);
+ mlx5e_notify_hw(wq, sq->pc, sq->uar_map, &nopwqe->ctrl);
+}
+
int mlx5e_napi_poll(struct napi_struct *napi, int budget)
{
struct mlx5e_channel *c = container_of(napi, struct mlx5e_channel,
--
2.20.1
next prev parent reply other threads:[~2019-04-23 19:15 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-23 19:14 [pull request][net-next V2 00/13] Mellanox, mlx5 RX and XDP improvements Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 01/13] net/mlx5e: RX, Support multiple outstanding UMR posts Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 02/13] net/mlx5e: XDP, Fix shifted flag index in RQ bitmap Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 03/13] net/mlx5e: XDP, Enhance RQ indication for XDP redirect flush Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 04/13] net/mlx5e: XDP, Add TX MPWQE session counter Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 05/13] net/mlx5e: XDP, Inline small packets into the TX MPWQE in XDP xmit flow Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 06/13] net/mlx5e: Remove unused parameter Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 07/13] net/mlx5e: Report mlx5e_xdp_set errors Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 08/13] net/mlx5e: Move parameter calculation functions to en/params.c Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 09/13] net/mlx5e: Add an underflow warning comment Saeed Mahameed
2019-04-23 19:14 ` [net-next V2 10/13] net/mlx5e: Remove unused parameter Saeed Mahameed
2019-04-23 19:14 ` Saeed Mahameed [this message]
2019-04-23 19:14 ` [net-next V2 12/13] net/mlx5e: Remove unused rx_page_reuse stat Saeed Mahameed
2019-04-23 19:15 ` [net-next V2 13/13] net/mlx5e: Use #define for the WQE wait timeout constant Saeed Mahameed
2019-04-23 23:25 ` [pull request][net-next V2 00/13] Mellanox, mlx5 RX and XDP improvements Jakub Kicinski
2019-04-24 0:08 ` 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=20190423191500.16632-12-saeedm@mellanox.com \
--to=saeedm@mellanox.com \
--cc=brouer@redhat.com \
--cc=bsd@fb.com \
--cc=davem@davemloft.net \
--cc=maximmi@mellanox.com \
--cc=netdev@vger.kernel.org \
--cc=tariqt@mellanox.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).