Skip to content

consolidate ice and iavf Tx vector paths

Bruce Richardson dpdk-dev 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest15 patches 3 repliesIn review
  2. v215 patches 5 repliesSuperseded
  3. v113 patches 15 repliesSuperseded

Changes in v3 from the cover letter

* fix variable shadowing issue in patch 15 (ci_txq_vec_capable param)
* update ice.ini with new features

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/15net/iavf: remove unnecessary alignment callsdrivers/net/intel/iavf/iavf_rxtx_vec_avx2.c drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c+4 -140 replies
2/15net/intel: make Tx context flag commondrivers/net/intel/common/tx.h+1 -10 replies
3/15net/iavf: use separate params for VLAN and QinQ positiondrivers/net/intel/iavf/iavf_rxtx_vec_avx2.c drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c drivers/net/intel/iavf/iavf_rxtx_vec_common.h+77 -600 replies
4/15net/iavf: deduplicate tunnel field fill functionsdrivers/net/intel/iavf/iavf_rxtx_vec_avx2.c drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c+4 -1500 replies
5/15net/intel: define common macros for tunneling bit-shiftsdrivers/net/intel/common/tx.h drivers/net/intel/iavf/iavf_rxtx.c drivers/net/intel/iavf/iavf_rxtx.h +2 more+69 -790 replies
6/15net/intel: move iavf descriptor writing functions to commondrivers/net/intel/common/tx_vec_x86.h drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c +1 more+530 -6130 replies
7/15net/intel: use function callback for lldpdrivers/net/intel/common/tx_vec_x86.h drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c+48 -270 replies
8/15net/intel: allow building without IOVA in mbufdrivers/net/intel/common/tx_vec_x86.h drivers/net/intel/iavf/meson.build+16 -180 replies
9/15net/ice: use common descriptor creation functionsdrivers/net/intel/ice/ice_rxtx_vec_avx2.c drivers/net/intel/ice/ice_rxtx_vec_avx512.c drivers/net/intel/ice/ice_rxtx_vec_common.h+12 -1840 replies
10/15net/intel: move vector Tx paths to commondrivers/net/intel/common/tx.h drivers/net/intel/common/tx_vec_x86.h drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c +1 more+148 -1420 replies
11/15net/ice: use common AVX Tx functionsdrivers/net/intel/ice/ice_rxtx_vec_avx2.c drivers/net/intel/ice/ice_rxtx_vec_avx512.c+14 -1600 replies
12/15net/intel: add common vector Tx fns with context handlingdrivers/net/intel/common/tx_vec_x86.h drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c+147 -1560 replies
13/15net/intel: improve Tx path selection logicdrivers/net/intel/common/tx.h drivers/net/intel/cpfl/cpfl_rxtx.c drivers/net/intel/i40e/i40e_rxtx.c +3 more+58 -400 replies
14/15net/ice: enable context desc offloads for vector Txdoc/guides/nics/features/ice.ini doc/guides/rel_notes/release_26_11.rst drivers/net/intel/ice/ice_ethdev.h +4 more+99 -82 replies
15/15net/intel: consolidate Tx vector offload path checksdrivers/net/intel/common/tx.h drivers/net/intel/iavf/iavf_rxtx.c drivers/net/intel/iavf/iavf_rxtx.h +4 more+48 -570 replies

Reviews trailers per patch

All 15 patches have a Reviewed-by or Acked-by.

PatchCiara LoftusDavid Marchand
1/15A-b
2/15A-b
3/15A-b
4/15R-b
5/15A-b
6/15A-b
7/15A-b
8/15A-b
9/15A-b
10/15A-b
11/15A-b
12/15A-b
13/15A-b
14/15A-b
15/15A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH v3 00/15] consolidate ice and iavf Tx vector paths

This patchset consolidates the ice and iavf vector Tx paths, moving the code to net/intel/common. The iavf code is used as the basis for the move, because it has a superset of the features. When the common code is adopted by the ice driver, it then gains features such as QinQ support and tunneling support.

V3:
* fix variable shadowing issue in patch 15 (ci_txq_vec_capable param)
* update ice.ini with new features

V2:
* fix build when iova not in mbuf
* add extra patch to consolidate the offload flags

Bruce Richardson (15):
net/iavf: remove unnecessary alignment calls net/intel: make Tx context flag common
net/iavf: use separate params for VLAN and QinQ position net/iavf: deduplicate tunnel field fill functions net/intel: define common macros for tunneling bit-shifts net/intel: move iavf descriptor writing functions to common net/intel: use function callback for lldp net/intel: allow building without IOVA in mbuf net/ice: use common descriptor creation functions net/intel: move vector Tx paths to common net/ice: use common AVX Tx functions
net/intel: add common vector Tx fns with context handling net/intel: improve Tx path selection logic net/ice: enable context desc offloads for vector Tx net/intel: consolidate Tx vector offload path checks

 doc/guides/nics/features/ice.ini              |   8 +-
 doc/guides/rel_notes/release_26_11.rst        |   6 +
 drivers/net/intel/common/tx.h                 | 107 ++-
 drivers/net/intel/common/tx_vec_x86.h         | 781 ++++++++++++++++++
 drivers/net/intel/cpfl/cpfl_rxtx.c            |   3 +-
 drivers/net/intel/i40e/i40e_rxtx.c            |   2 +-
 drivers/net/intel/iavf/iavf_rxtx.c            |  94 +--
 drivers/net/intel/iavf/iavf_rxtx.h            |  53 --
 drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c   | 496 +----------
 drivers/net/intel/iavf/iavf_rxtx_vec_avx512.c | 495 +----------
 drivers/net/intel/iavf/iavf_rxtx_vec_common.h |  79 +-
 drivers/net/intel/iavf/meson.build            |   4 +-
 drivers/net/intel/ice/ice_ethdev.h            |   3 +
 drivers/net/intel/ice/ice_rxtx.c              |  44 +-
 drivers/net/intel/ice/ice_rxtx.h              |  17 +-
 drivers/net/intel/ice/ice_rxtx_vec_avx2.c     | 159 +---
 drivers/net/intel/ice/ice_rxtx_vec_avx512.c   | 154 +---
 drivers/net/intel/ice/ice_rxtx_vec_common.h   |  62 +-
 drivers/net/intel/idpf/idpf_rxtx.c            |   3 +-
 19 files changed, 1068 insertions(+), 1502 deletions(-)
 create mode 100644 drivers/net/intel/common/tx_vec_x86.h

--
2.53.0