[dpdk-dev] [PATCH] net/bnx2x: Fix transmit queue free threshold

Harish Patil harish.patil at qlogic.com
Thu Feb 23 01:26:08 CET 2017


>
>The default tx_free_thresh is potentially larger than the allocated queue
>which will result in TX queue cleanup never happening.  To fix this,
>lower the default free threshold and ensure that the free threshold is
>never greater than the maximum outstanding transmit buffers.
>
>Fixes: 827ed2a118cc ("net/bnx2x: restructure Tx routine")
>
>Signed-off-by: Chas Williams <ciwillia at brocade.com>
>---
> drivers/net/bnx2x/bnx2x_rxtx.c | 2 ++
> drivers/net/bnx2x/bnx2x_rxtx.h | 2 +-
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/net/bnx2x/bnx2x_rxtx.c
>b/drivers/net/bnx2x/bnx2x_rxtx.c
>index 170e48f..adf0309 100644
>--- a/drivers/net/bnx2x/bnx2x_rxtx.c
>+++ b/drivers/net/bnx2x/bnx2x_rxtx.c
>@@ -273,6 +273,8 @@ bnx2x_dev_tx_queue_setup(struct rte_eth_dev *dev,
> 
> 	txq->tx_free_thresh = tx_conf->tx_free_thresh ?
> 		tx_conf->tx_free_thresh : DEFAULT_TX_FREE_THRESH;
>+	txq->tx_free_thresh = min(txq->tx_free_thresh,
>+				  txq->nb_tx_desc - BDS_PER_TX_PKT);
> 
> 	PMD_INIT_LOG(DEBUG, "fp[%02d] req_bd=%u, thresh=%u, usable_bd=%lu, "
> 		     "total_bd=%lu, tx_pages=%u",
>diff --git a/drivers/net/bnx2x/bnx2x_rxtx.h
>b/drivers/net/bnx2x/bnx2x_rxtx.h
>index dd251aa..2e38ec2 100644
>--- a/drivers/net/bnx2x/bnx2x_rxtx.h
>+++ b/drivers/net/bnx2x/bnx2x_rxtx.h
>@@ -11,7 +11,7 @@
> #ifndef _BNX2X_RXTX_H_
> #define _BNX2X_RXTX_H_
> 
>-#define DEFAULT_TX_FREE_THRESH   512
>+#define DEFAULT_TX_FREE_THRESH   64
> #define RTE_PMD_BNX2X_TX_MAX_BURST 1
> 
> /**
>-- 
>2.1.4
>
>

Acked-by: Harish Patil <harish.patil at qlogic.com>



More information about the dev mailing list