diff options
author | Tariq Toukan <tariqt@mellanox.com> | 2018-05-22 16:29:31 +0300 |
---|---|---|
committer | Saeed Mahameed <saeedm@mellanox.com> | 2018-07-26 15:23:55 -0700 |
commit | 890388ad6f6b3740265173fa5296ece5d945e977 (patch) | |
tree | 0175295eb07120173d5d305ce77092bc0ecbab32 /drivers/net/ethernet/mellanox/mlx5/core/en | |
parent | c94e4f117e473dec11c7b9395b4d88cae2ba27c9 (diff) | |
download | linux-890388ad6f6b3740265173fa5296ece5d945e977.tar.bz2 |
net/mlx5e: Refactor XDP counters
Separate the XDP counters into two sets:
(1) One set reside in the RQ stats, and they monitor XDP stats
in the RQ side.
(2) Another set is per XDP-SQ, and they monitor XDP stats that
are related to XDP transmit flow.
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c index 53d011eb71ab..26e24823504b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c @@ -106,8 +106,6 @@ bool mlx5e_xmit_xdp_frame(struct mlx5e_xdpsq *sq, struct mlx5e_xdp_info *xdpi) u16 pi = mlx5_wq_cyc_ctr2ix(wq, sq->pc); struct mlx5e_tx_wqe *wqe = mlx5_wq_cyc_get_wqe(wq, pi); - struct mlx5e_rq *rq = container_of(sq, struct mlx5e_rq, xdpsq); - struct mlx5_wqe_ctrl_seg *cseg = &wqe->ctrl; struct mlx5_wqe_eth_seg *eseg = &wqe->eth; struct mlx5_wqe_data_seg *dseg = wqe->data; @@ -116,12 +114,12 @@ bool mlx5e_xmit_xdp_frame(struct mlx5e_xdpsq *sq, struct mlx5e_xdp_info *xdpi) dma_addr_t dma_addr = xdpi->dma_addr; unsigned int dma_len = xdpf->len; - struct mlx5e_rq_stats *stats = rq->stats; + struct mlx5e_xdpsq_stats *stats = sq->stats; prefetchw(wqe); if (unlikely(dma_len < MLX5E_XDP_MIN_INLINE || sq->hw_mtu < dma_len)) { - stats->xdp_drop++; + stats->err++; return false; } @@ -131,7 +129,7 @@ bool mlx5e_xmit_xdp_frame(struct mlx5e_xdpsq *sq, struct mlx5e_xdp_info *xdpi) mlx5e_xmit_xdp_doorbell(sq); sq->db.doorbell = false; } - stats->xdp_tx_full++; + stats->full++; return false; } @@ -160,7 +158,7 @@ bool mlx5e_xmit_xdp_frame(struct mlx5e_xdpsq *sq, struct mlx5e_xdp_info *xdpi) sq->db.doorbell = true; - stats->xdp_tx++; + stats->xmit++; return true; } @@ -212,7 +210,7 @@ bool mlx5e_poll_xdpsq_cq(struct mlx5e_cq *cq) } while (!last_wqe); } while ((++i < MLX5E_TX_CQ_POLL_BUDGET) && (cqe = mlx5_cqwq_get_cqe(&cq->wq))); - rq->stats->xdp_tx_cqe += i; + sq->stats->cqes += i; mlx5_cqwq_update_db_record(&cq->wq); |