path: root/drivers/net/mlx5/mlx5_rxtx.h
diff options
authorViacheslav Ovsiienko <>2019-08-05 13:03:54 +0000
committerRaslan Darawsheh <>2019-08-06 17:42:12 +0200
commitf32a3f5216a33839799932451dde305759082efb (patch)
treef64006837b51e767fb59f2b2c409ccd6f46943f1 /drivers/net/mlx5/mlx5_rxtx.h
parent3502b059251517785bd3232a97f56fb239606183 (diff)
net/mlx5: fix completion queue overflow for large burst
There is the limit on completion descriptor fetch to improve latency. If burst size is large there might be not enough resources freed in completion processing. This fix reiterates sending loop and allows multiple completion descriptor fetch and processing. Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template") Signed-off-by: Viacheslav Ovsiienko <> Acked-by: Matan Azrad <>
Diffstat (limited to 'drivers/net/mlx5/mlx5_rxtx.h')
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h
index aaa02a2..bad9e9c 100644
--- a/drivers/net/mlx5/mlx5_rxtx.h
+++ b/drivers/net/mlx5/mlx5_rxtx.h
@@ -239,6 +239,7 @@ struct mlx5_txq_local {
struct rte_mbuf *mbuf; /* first mbuf to process. */
uint16_t pkts_copy; /* packets copied to elts. */
uint16_t pkts_sent; /* packets sent. */
+ uint16_t pkts_loop; /* packets sent on loop entry. */
uint16_t elts_free; /* available elts remain. */
uint16_t wqe_free; /* available wqe remain. */
uint16_t mbuf_off; /* data offset in current mbuf. */