[dpdk-dev] [PATCH 0/3] net/mlx5: add Multi-Packet Rx support

Yongseok Koh yskoh at mellanox.com
Thu May 3 01:20:51 CEST 2018


Multi-Packet Rx Queue (MPRQ a.k.a Striding RQ) can further save PCIe
bandwidth by posting a single large buffer for multiple packets. Instead of
posting a buffer per a packet, one large buffer is posted in order to
receive multiple packets on the buffer. A MPRQ buffer consists of multiple
fixed-size strides and each stride receives one packet.

Rx packet is mem-copied to a user-provided mbuf if the size of Rx packet is
comparatively small, or PMD attaches the Rx packet to the mbuf by external
buffer attachment - rte_pktmbuf_attach_extbuf(). A mempool for external
buffers will be allocated and managed by PMD.

This patchset should be applied after:
  net/mlx5: add new Memory Region support

Yongseok Koh (3):
  net/mlx5: separate filling Rx flags
  net/mlx5: add a function to rdma-core glue
  net/mlx5: add Multi-Packet Rx support

 doc/guides/nics/mlx5.rst         |  25 ++
 drivers/net/mlx5/Makefile        |   5 +
 drivers/net/mlx5/mlx5.c          |  66 ++++++
 drivers/net/mlx5/mlx5.h          |   4 +
 drivers/net/mlx5/mlx5_defs.h     |  23 ++
 drivers/net/mlx5/mlx5_ethdev.c   |   3 +
 drivers/net/mlx5/mlx5_glue.c     |  16 ++
 drivers/net/mlx5/mlx5_glue.h     |   8 +
 drivers/net/mlx5/mlx5_prm.h      |  15 ++
 drivers/net/mlx5/mlx5_rxq.c      | 494 ++++++++++++++++++++++++++++++++++++---
 drivers/net/mlx5/mlx5_rxtx.c     | 291 ++++++++++++++++++++---
 drivers/net/mlx5/mlx5_rxtx.h     |  37 ++-
 drivers/net/mlx5/mlx5_rxtx_vec.c |   4 +
 drivers/net/mlx5/mlx5_rxtx_vec.h |   3 +-
 drivers/net/mlx5/mlx5_trigger.c  |   6 +-
 15 files changed, 924 insertions(+), 76 deletions(-)

-- 
2.11.0



More information about the dev mailing list