Thread (8 messages) 8 messages, 5 authors, 2021-09-03

Re: [dpdk-dev] [PATCH 2/2] net/ice: fix generic build on FreeBSD

From: Zhang, Qi Z <hidden>
Date: 2021-09-01 06:24:25

-----Original Message-----
From: Rong, Leyi <redacted>
Sent: Monday, August 30, 2021 4:18 PM
To: Richardson, Bruce <redacted>; dev@dpdk.org
Cc: brian90013@gmail.com; Lu, Wenzhuo <redacted>;
stable@dpdk.org; Yang, Qiming [off-list ref]; Zhang, Qi Z
[off-list ref]
Subject: RE: [PATCH 2/2] net/ice: fix generic build on FreeBSD

quoted
-----Original Message-----
From: Richardson, Bruce <redacted>
Sent: Thursday, August 19, 2021 12:38 AM
To: dev@dpdk.org
Cc: brian90013@gmail.com; Richardson, Bruce
[off-list ref]; Lu, Wenzhuo [off-list ref];
Rong, Leyi [off-list ref]; stable@dpdk.org; Yang, Qiming
[off-list ref]; Zhang, Qi Z [off-list ref]
Subject: [PATCH 2/2] net/ice: fix generic build on FreeBSD

The common header file for vectorization is included in multiple
files, and so must use macros for the current compilation unit, rather
than the compiler- capability flag set for the whole driver. With the
current, incorrect, macro, the
AVX512 or AVX2 flags may be set when compiling up SSE code, leading to
compilation errors. Changing from "CC_AVX*_SUPPORT"
to the compiler-defined "__AVX*__" macros fixes this issue.

Bugzilla ID: 788
Fixes: a4e480de268e ("net/ice: optimize Tx by using AVX512")
Fixes: 20daa1c978b7 ("net/ice: fix crash in AVX512")
Cc: wenzhuo.lu@intel.com
Cc: leyi.rong@intel.com
Cc: stable@dpdk.org

Signed-off-by: Bruce Richardson <redacted>
---
 drivers/net/ice/ice_rxtx_vec_common.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ice/ice_rxtx_vec_common.h
b/drivers/net/ice/ice_rxtx_vec_common.h
index 2d8ef7dc8a..e609a75fc6 100644
--- a/drivers/net/ice/ice_rxtx_vec_common.h
+++ b/drivers/net/ice/ice_rxtx_vec_common.h
@@ -194,7 +194,7 @@ _ice_tx_queue_release_mbufs_vec(struct
ice_tx_queue
*txq)
 	 */
 	i = txq->tx_next_dd - txq->tx_rs_thresh + 1;

-#ifdef CC_AVX512_SUPPORT
+#ifdef __AVX512VL__
 	struct rte_eth_dev *dev = &rte_eth_devices[txq->vsi->adapter-
quoted
pf.dev_data->port_id];
 	if (dev->tx_pkt_burst == ice_xmit_pkts_vec_avx512 || @@ -352,7
+352,7 @@ ice_tx_vec_dev_check_default(struct rte_eth_dev *dev)
 	return result;
 }

-#ifdef CC_AVX2_SUPPORT
+#ifdef __AVX2__
 static __rte_always_inline void
 ice_rxq_rearm_common(struct ice_rx_queue *rxq, __rte_unused bool
avx512) { @@ -414,7 +414,7 @@ ice_rxq_rearm_common(struct
ice_rx_queue
quoted
*rxq, __rte_unused bool avx512)
 		_mm_store_si128((__m128i *)&rxdp++->read, dma_addr1);
 	}
 #else
-#ifdef CC_AVX512_SUPPORT
+#ifdef __AVX512VL__
 	if (avx512) {
 		struct rte_mbuf *mb0, *mb1, *mb2, *mb3;
 		struct rte_mbuf *mb4, *mb5, *mb6, *mb7;
--
2.30.2
Acked-by: Leyi Rong <redacted>
Applied to dpdk-next-net-intel.

Thanks
Qi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help