[dpdk-dev] [PATCH v2 0/7] net/mlx5: consolidate Tx datapath

Viacheslav Ovsiienko viacheslavo at mellanox.com
Mon Jul 15 15:59:14 CEST 2019


This patchset introduces the new implementation of tx_burst
routine of mlx5 PMD. The existing implementation is based on the
several branches of tx_burst routines optimizied for most
common sets of Tx hardware offload, supported by Mellanox NICs.

It was not very easy to update, support and develop such kind
of code - multiple branches impose multiple points to process.
Also, many of frequently requested offload combinations are not
supported yet in the most efficient way. That leads to selecting
of not completely matching tx_burst routine and harms the performance.

The new Tx datapath:
  - introduces the unified template for tx_burst routine to generate
    on compile time the most efficient instances, tuned for specified
    sets of hardware offloads
  - the best matching instance is chosen in run-time at sending queue
    configuration
  - almost all possible sets of Tx are supported
  - the best possible method to send each packet is chosen on runtime
  - introduces new devargs for more accurate tuning of data inlining 

Signed-off-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>

---
v2: 
  - minor performance issues resolved
  - typos in comments and docs

v1: http://patches.dpdk.org/patch/56091/

Viacheslav Ovsiienko (7):
  net/mlx5: remove Tx datapath implementation
  net/mlx5: add Tx datapath related devargs
  net/mlx5: update Tx datapath definitions
  net/mlx5: add Tx datapath configuration and setup
  net/mlx5: introduce Tx burst routine template
  net/mlx5: implement Tx burst template
  net/mlx5: add minimal required Tx data inline

 doc/guides/nics/mlx5.rst              |  168 +-
 drivers/net/mlx5/mlx5.c               |  155 +-
 drivers/net/mlx5/mlx5.h               |   13 +-
 drivers/net/mlx5/mlx5_defs.h          |   36 +-
 drivers/net/mlx5/mlx5_devx_cmds.c     |  100 +-
 drivers/net/mlx5/mlx5_ethdev.c        |   58 -
 drivers/net/mlx5/mlx5_prm.h           |  355 ++-
 drivers/net/mlx5/mlx5_rxtx.c          | 5280 ++++++++++++++++++++++-----------
 drivers/net/mlx5/mlx5_rxtx.h          |  333 +--
 drivers/net/mlx5/mlx5_rxtx_vec.c      |  175 --
 drivers/net/mlx5/mlx5_rxtx_vec_neon.h |  289 --
 drivers/net/mlx5/mlx5_rxtx_vec_sse.h  |  284 --
 drivers/net/mlx5/mlx5_txq.c           |  242 +-
 13 files changed, 4413 insertions(+), 3075 deletions(-)

-- 
1.8.3.1



More information about the dev mailing list