[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