DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/mlx5: fix completion request for inline packets
@ 2019-08-04 13:56 Viacheslav Ovsiienko
  2019-08-05  6:40 ` Matan Azrad
  0 siblings, 1 reply; 2+ messages in thread
From: Viacheslav Ovsiienko @ 2019-08-04 13:56 UTC (permalink / raw)
  To: dev; +Cc: yskoh, shahafs

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@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


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-08-05  6:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-04 13:56 [dpdk-dev] [PATCH] net/mlx5: fix completion request for inline packets Viacheslav Ovsiienko
2019-08-05  6:40 ` Matan Azrad

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).