mbox series

[v2,0/6] net/mlx5: reduce Tx datapath compile time

Message ID 1618209145-3055-1-git-send-email-michaelba@nvidia.com (mailing list archive)
Headers show
Series net/mlx5: reduce Tx datapath compile time | expand

Message

Michael Baum April 12, 2021, 6:32 a.m. UTC
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

Comments

Raslan Darawsheh April 15, 2021, 6:27 a.m. UTC | #1
Hi,

> -----Original Message-----
> From: Michael Baum <michaelba@nvidia.com>
> Sent: Monday, April 12, 2021 9:32 AM
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@nvidia.com>; Raslan Darawsheh
> <rasland@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>
> Subject: [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
> 
> --
> 1.8.3.1

Series applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh