This is to introduce more efficient Rx/Tx burst functions using SIMD instructions. Currently it is only supported by 64bit x86 having SSE4.1.
>From functional perspective, Rx burst function is equivalent to the existing mlx5_rx_burst() except for scatter support, which will be added soon. Tx burst function supports multi-segment packets and offload flags unless it is disabled by txq_flags. However, disabling those features will bring a little higher performance. Yongseok Koh (5): net/mlx5: change indexing for Tx SW ring net/mlx5: free buffers in bulk on Tx completion net/mlx5: use buffer address for LKEY search net/mlx5: select Rx/Tx callbacks when starting device net/mlx5: add vectorized Rx/Tx burst for SSE4.1 drivers/net/mlx5/Makefile | 10 + drivers/net/mlx5/mlx5_defs.h | 18 + drivers/net/mlx5/mlx5_ethdev.c | 28 +- drivers/net/mlx5/mlx5_mr.c | 2 + drivers/net/mlx5/mlx5_rxq.c | 57 +- drivers/net/mlx5/mlx5_rxtx.c | 425 +++------- drivers/net/mlx5/mlx5_rxtx.h | 293 ++++++- drivers/net/mlx5/mlx5_rxtx_vec_sse.c | 1451 ++++++++++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_trigger.c | 3 + drivers/net/mlx5/mlx5_txq.c | 20 +- 10 files changed, 1970 insertions(+), 337 deletions(-) create mode 100644 drivers/net/mlx5/mlx5_rxtx_vec_sse.c -- 2.11.0