[PATCH v3 00/15] net/intel: rx path selection simplification
Ciara Loftus
ciara.loftus at intel.com
Mon Aug 18 12:58:59 CEST 2025
This series aims to simplify the process of selecting an Rx burst
function for the i40e, iavf and ice drivers. Three main simplifications
are made:
1. enforcing the same rx burst function for both primary and secondary
processes.
2. using a common function for determining the maximum SIMD width based
on compiler flags, CPU flags and user-defined limits.
3. using a common function for selecting the rx burst function based on
maximum SIMD width, function features (flex desc, scattered, bulk alloc)
and requested rx offloads.
v3:
* removed arbitrary defines for features and replaced with new sub structure within features
structure
* removed unnecessary initialisation in the path select function
* added error log for case when tx simd width is invalid in i40e driver
* fixed ice vector offload mask to excude QINQ
* removed unnecessary #ifdef CC_AVX512_SUPPORT in ice and i40e driver
* changed == RTE_VECT_SIMD_256 to >= RTE_VECT_SIMD_256 in ice driver
Bruce Richardson (1):
net/intel: introduce common vector capability function
Ciara Loftus (14):
net/ice: use the same Rx path across process types
net/iavf: rename Rx/Tx function type variables
net/iavf: use the same Rx path across process types
net/i40e: use the same Rx path across process types
net/ice: use the new common vector capability function
net/iavf: use the new common vector capability function
net/i40e: use the new common vector capability function
net/iavf: remove redundant field from iavf adapter struct
net/ice: remove unsupported Rx offload
net/iavf: reorder enum of Rx function types
net/intel: introduce infrastructure for Rx path selection
net/ice: use the common Rx path selection infrastructure
net/iavf: use the common Rx path selection infrastructure
net/i40e: use the common Rx path selection infrastructure
drivers/net/intel/common/rx.h | 98 ++++
drivers/net/intel/common/rx_vec_x86.h | 22 +
drivers/net/intel/i40e/i40e_ethdev.h | 25 +-
drivers/net/intel/i40e/i40e_rxtx.c | 256 ++++------
drivers/net/intel/i40e/i40e_rxtx.h | 16 +
.../net/intel/i40e/i40e_rxtx_vec_altivec.c | 6 +
drivers/net/intel/i40e/i40e_rxtx_vec_common.h | 9 +-
drivers/net/intel/i40e/i40e_rxtx_vec_neon.c | 6 +
drivers/net/intel/i40e/i40e_rxtx_vec_sse.c | 6 +
drivers/net/intel/iavf/iavf.h | 31 +-
drivers/net/intel/iavf/iavf_ethdev.c | 1 -
drivers/net/intel/iavf/iavf_rxtx.c | 439 ++++++------------
drivers/net/intel/iavf/iavf_rxtx.h | 51 +-
drivers/net/intel/iavf/iavf_rxtx_vec_common.h | 14 +-
drivers/net/intel/iavf/iavf_rxtx_vec_neon.c | 6 +
drivers/net/intel/iavf/iavf_rxtx_vec_sse.c | 6 +
drivers/net/intel/ice/ice_ethdev.c | 2 +
drivers/net/intel/ice/ice_ethdev.h | 25 +-
drivers/net/intel/ice/ice_rxtx.c | 270 ++++-------
drivers/net/intel/ice/ice_rxtx.h | 30 ++
drivers/net/intel/ice/ice_rxtx_vec_common.h | 18 +-
drivers/net/intel/ice/ice_rxtx_vec_sse.c | 6 +
22 files changed, 636 insertions(+), 707 deletions(-)
--
2.34.1
More information about the dev
mailing list