[dpdk-dev] [PATCH v2 0/5] net/mlx5: add vectorized Rx/Tx burst for x86
bruce.richardson at intel.com
Fri Jun 30 23:28:02 CEST 2017
On Fri, Jun 30, 2017 at 12:23:28PM -0700, Yongseok Koh wrote:
> 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.
> * Streamline redundant conditional clauses in txq_complete().
> * Remove the mempool pointer in txq->mp2mr structure.
> * Fix indentation and spacing.
> 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 | 17 +-
> drivers/net/mlx5/mlx5_rxq.c | 57 +-
> drivers/net/mlx5/mlx5_rxtx.c | 425 +++-------
> drivers/net/mlx5/mlx5_rxtx.h | 291 ++++++-
> drivers/net/mlx5/mlx5_rxtx_vec_sse.c | 1451 ++++++++++++++++++++++++++++++++++
> drivers/net/mlx5/mlx5_trigger.c | 3 +
> drivers/net/mlx5/mlx5_txq.c | 23 +-
> 10 files changed, 1980 insertions(+), 343 deletions(-)
> create mode 100644 drivers/net/mlx5/mlx5_rxtx_vec_sse.c
FYI: I've upstreamed a patchset to bump the minimum specs for DPDK on
x86 to include SSE4.2, so that would lead to some simplification of your
code, I expect. See this set: http://dpdk.org/dev/patchwork/patch/25444/
More information about the dev