[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