Skip to content

net/mlx5: reduce Tx datapath compile time

Michael Baum dpdk-dev 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest6 patches 2 repliesIn review
  2. v16 patches 9 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6net/mlx5: separate Rx function declarations to another filedrivers/net/mlx5/linux/mlx5_mp_os.c drivers/net/mlx5/linux/mlx5_os.c drivers/net/mlx5/linux/mlx5_verbs.c +18 more+617 -5690 replies
2/6net/mlx5: separate Rx function implementations to new filedrivers/net/mlx5/meson.build drivers/net/mlx5/mlx5_rx.c drivers/net/mlx5/mlx5_rx.h +2 more+1209 -11801 reply
3/6net/mlx5: separate Tx function declarations to another filedrivers/net/mlx5/linux/mlx5_mp_os.c drivers/net/mlx5/linux/mlx5_os.c drivers/net/mlx5/linux/mlx5_verbs.c +17 more+387 -3540 replies
4/6net/mlx5: separate Tx burst template to header filedrivers/net/mlx5/mlx5_rxtx.c drivers/net/mlx5/mlx5_tx.h+3305 -33300 replies
5/6net/mlx5: separate Tx function implementations to new filedrivers/net/mlx5/meson.build drivers/net/mlx5/mlx5_rxtx.c drivers/net/mlx5/mlx5_tx.c +2 more+838 -7600 replies
6/6net/mlx5: separate Tx burst functions to different filesdrivers/net/mlx5/meson.build drivers/net/mlx5/mlx5_rxtx.c drivers/net/mlx5/mlx5_tx.h +4 more+232 -2020 replies

Reviews trailers per patch

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

PatchViacheslav Ovsiienko
1/6A-b
2/6A-b
3/6A-b
4/6A-b
5/6A-b
6/6A-b

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

Read the v2 thread

Cover letter [dpdk-dev] [PATCH v2 0/6] net/mlx5: reduce Tx datapath compile time

The mlx5_rxtx.c file contains a lot of Tx burst functions, each of those is performance-optimized for the specific set of requested offloads.
These ones are generated on the basis of the template function and it takes significant time to compile, just due to a large number of giant functions generated in the same file and this compilation is not being done in parallel with using multithreading.

Therefore, in this series we split the mlx5_rxtx.c file into several separate files to allow different functions to be compiled simultaneously.

v2: fix compilation error + rebase

Michael Baum (6):
net/mlx5: separate Rx function declarations to another file net/mlx5: separate Rx function implementations to new file net/mlx5: separate Tx function declarations to another file net/mlx5: separate Tx burst template to header file net/mlx5: separate Tx function implementations to new file net/mlx5: separate Tx burst functions to different files

 drivers/net/mlx5/linux/mlx5_mp_os.c |    2 +
 drivers/net/mlx5/linux/mlx5_os.c    |    2 +
 drivers/net/mlx5/linux/mlx5_verbs.c |    3 +-
 drivers/net/mlx5/meson.build        |    6 +
 drivers/net/mlx5/mlx5.c             |    2 +
 drivers/net/mlx5/mlx5_devx.c        |    3 +-
 drivers/net/mlx5/mlx5_ethdev.c      |    2 +
 drivers/net/mlx5/mlx5_flow.c        |    3 +-
 drivers/net/mlx5/mlx5_flow_dv.c     |    3 +-
 drivers/net/mlx5/mlx5_flow_verbs.c  |    2 +-
 drivers/net/mlx5/mlx5_mr.c          |    2 +
 drivers/net/mlx5/mlx5_rss.c         |    1 +
 drivers/net/mlx5/mlx5_rx.c          | 1203 ++++++++
 drivers/net/mlx5/mlx5_rx.h          |  598 ++++
 drivers/net/mlx5/mlx5_rxmode.c      |    1 -
 drivers/net/mlx5/mlx5_rxq.c         |    3 +-
 drivers/net/mlx5/mlx5_rxtx.c        | 5468 +----------------------------------
 drivers/net/mlx5/mlx5_rxtx.h        |  915 +-----
 drivers/net/mlx5/mlx5_rxtx_vec.c    |    1 +
 drivers/net/mlx5/mlx5_stats.c       |    3 +-
 drivers/net/mlx5/mlx5_trigger.c     |    3 +-
 drivers/net/mlx5/mlx5_tx.c          |  780 +++++
 drivers/net/mlx5/mlx5_tx.h          | 3734 ++++++++++++++++++++++++
 drivers/net/mlx5/mlx5_tx_empw.c     |   71 +
 drivers/net/mlx5/mlx5_tx_mpw.c      |   34 +
 drivers/net/mlx5/mlx5_tx_nompw.c    |   71 +
 drivers/net/mlx5/mlx5_tx_txpp.c     |   45 +
 drivers/net/mlx5/mlx5_txpp.c        |    3 +-
 drivers/net/mlx5/mlx5_txq.c         |    2 +
 drivers/net/mlx5/mlx5_vlan.c        |    1 +
 drivers/net/mlx5/windows/mlx5_os.c  |    2 +
 31 files changed, 6581 insertions(+), 6388 deletions(-)
 create mode 100644 drivers/net/mlx5/mlx5_rx.c
 create mode 100644 drivers/net/mlx5/mlx5_rx.h
 create mode 100644 drivers/net/mlx5/mlx5_tx.c
 create mode 100644 drivers/net/mlx5/mlx5_tx.h
 create mode 100644 drivers/net/mlx5/mlx5_tx_empw.c
 create mode 100644 drivers/net/mlx5/mlx5_tx_mpw.c
 create mode 100644 drivers/net/mlx5/mlx5_tx_nompw.c
 create mode 100644 drivers/net/mlx5/mlx5_tx_txpp.c
Signature · 1 line
1.8.3.1