[dpdk-dev] [PATCH] net/mlx5: fix completion request for inline packets

Viacheslav Ovsiienko viacheslavo at mellanox.com
Sun Aug 4 15:56:15 CEST 2019


If packets are completely inline the mbuf is freed immediately
after data copying and no pointer is stored into elts array
to be free on completion. This leads the elts_head is not
updated and completion request buffer counter works incorrect.
This patch decrements the base value elts_comp used to calculate
counter threshold and completion requests flags are set more
correctly on the base of MLX5_TX_COMP_THRESH value.

Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
---
 drivers/net/mlx5/mlx5_rxtx.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index a890f41..308133b 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -4097,6 +4097,7 @@ enum mlx5_txcmp_code {
 			 * Packet data are completely inlined,
 			 * free the packet immediately.
 			 */
+			txq->elts_comp--;
 			rte_pktmbuf_free_seg(loc->mbuf);
 			goto next_mbuf;
 pointer_empw:
@@ -4283,6 +4284,7 @@ enum mlx5_txcmp_code {
 				 * Packet data are completely inlined,
 				 * free the packet immediately.
 				 */
+				txq->elts_comp--;
 				rte_pktmbuf_free_seg(loc->mbuf);
 			} else if (!MLX5_TXOFF_CONFIG(EMPW) &&
 				   txq->inlen_mode) {
-- 
1.8.3.1



More information about the dev mailing list