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. 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 | 3 +- drivers/net/mlx5/mlx5_vlan.c | 1 + drivers/net/mlx5/windows/mlx5_os.c | 2 + 31 files changed, 6581 insertions(+), 6389 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 -- 1.8.3.1