net/iavf: fix AVX2 path selection

Message ID 20230706032023.1053203-1-zhichaox.zeng@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series net/iavf: fix AVX2 path selection |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-abi-testing success Testing PASS
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/iol-aarch-unit-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS

Commit Message

Zeng, ZhichaoX July 6, 2023, 3:20 a.m. UTC
The AVX2 path does not support outer checksum offload, when AVX2 is
forcibly selected and outer checksum offload is configured, the basic
Tx path will be selected to ensure proper functionality.

Fixes: 5712bf9d6e14 ("net/iavf: add Tx AVX2 offload path")
Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 6 ++++++
 1 file changed, 6 insertions(+)
  

Comments

Ke Xu July 6, 2023, 3:52 a.m. UTC | #1
> -----Original Message-----
> From: Zeng, ZhichaoX <zhichaox.zeng@intel.com>
> Sent: Thursday, July 6, 2023 11:20 AM
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Xu, Ke1 <ke1.xu@intel.com>;
> Zeng, ZhichaoX <zhichaox.zeng@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Lu,
> Wenzhuo <wenzhuo.lu@intel.com>
> Subject: [PATCH] net/iavf: fix AVX2 path selection
> 
> The AVX2 path does not support outer checksum offload, when AVX2 is
> forcibly selected and outer checksum offload is configured, the basic Tx
> path will be selected to ensure proper functionality.
> 
> Fixes: 5712bf9d6e14 ("net/iavf: add Tx AVX2 offload path")
> Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>

Verified path selection fixed.
Tested-by: Ke Xu <ke1.xu@intel.com>

> ---
>  drivers/net/iavf/iavf_rxtx.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> --
> 2.34.1
  
Qi Zhang July 6, 2023, 6:06 a.m. UTC | #2
> -----Original Message-----
> From: Xu, Ke1 <ke1.xu@intel.com>
> Sent: Thursday, July 6, 2023 11:52 AM
> To: Zeng, ZhichaoX <zhichaox.zeng@intel.com>; dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>;
> Xing, Beilei <beilei.xing@intel.com>; Lu, Wenzhuo <wenzhuo.lu@intel.com>
> Subject: RE: [PATCH] net/iavf: fix AVX2 path selection
> 
> 
> > -----Original Message-----
> > From: Zeng, ZhichaoX <zhichaox.zeng@intel.com>
> > Sent: Thursday, July 6, 2023 11:20 AM
> > To: dev@dpdk.org
> > Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Xu, Ke1 <ke1.xu@intel.com>;
> > Zeng, ZhichaoX <zhichaox.zeng@intel.com>; Wu, Jingjing
> > <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Lu,
> > Wenzhuo <wenzhuo.lu@intel.com>
> > Subject: [PATCH] net/iavf: fix AVX2 path selection
> >
> > The AVX2 path does not support outer checksum offload, when AVX2 is
> > forcibly selected and outer checksum offload is configured, the basic
> > Tx path will be selected to ensure proper functionality.
> >
> > Fixes: 5712bf9d6e14 ("net/iavf: add Tx AVX2 offload path")
> > Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>
> 
> Verified path selection fixed.
> Tested-by: Ke Xu <ke1.xu@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
  

Patch

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index bf7e4546a8..f7df4665d1 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -3950,6 +3950,12 @@  iavf_set_tx_function(struct rte_eth_dev *dev)
 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx2;
 				PMD_DRV_LOG(DEBUG, "Using AVX2 Vector Tx (port %d).",
 					    dev->data->port_id);
+			} else if (check_ret == IAVF_VECTOR_CTX_OFFLOAD_PATH) {
+				dev->tx_pkt_burst = iavf_xmit_pkts;
+				dev->tx_pkt_prepare = iavf_prep_pkts;
+				PMD_DRV_LOG(DEBUG,
+					"AVX2 does not support outer checksum offload, using Basic Tx (port %d).",
+					dev->data->port_id);
 			} else {
 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx2_offload;
 				dev->tx_pkt_prepare = iavf_prep_pkts;