[dpdk-dev] [DPDK] net/ice: fix txq mbuf release mode

Alvin Zhang alvinx.zhang at intel.com
Sun Apr 25 11:26:39 CEST 2021


In some cases, it seems that the txq mbuf vector release mode
is enabled first, and then it is confirmed that the conditions
for using the vector mode are not met.

This patch puts the txq vector mode startup process after the
condition detection.

Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
Cc: stable at dpdk.org

Signed-off-by: Alvin Zhang <alvinx.zhang at intel.com>
---
 drivers/net/ice/ice_rxtx.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 92fbbc1..49abcb2 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -3303,13 +3303,6 @@
 		if (tx_check_ret >= 0 &&
 		    rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128) {
 			ad->tx_vec_allowed = true;
-			for (i = 0; i < dev->data->nb_tx_queues; i++) {
-				txq = dev->data->tx_queues[i];
-				if (txq && ice_txq_vec_setup(txq)) {
-					ad->tx_vec_allowed = false;
-					break;
-				}
-			}
 
 			if (rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_512 &&
 			rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1 &&
@@ -3329,6 +3322,15 @@
 			if (!use_avx512 && tx_check_ret == ICE_VECTOR_OFFLOAD_PATH)
 				ad->tx_vec_allowed = false;
 
+			if (ad->tx_vec_allowed) {
+				for (i = 0; i < dev->data->nb_tx_queues; i++) {
+					txq = dev->data->tx_queues[i];
+					if (txq && ice_txq_vec_setup(txq)) {
+						ad->tx_vec_allowed = false;
+						break;
+					}
+				}
+			}
 		} else {
 			ad->tx_vec_allowed = false;
 		}
-- 
1.8.3.1



More information about the dev mailing list