[dpdk-dev] [PATCH v2 0/3] net/mlx5: add Multi-Packet Rx support
Yongseok Koh
yskoh at mellanox.com
Wed May 9 13:13:47 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
v2:
* add mprq_log_stride_num parameter to configure the number of strides.
* enable configuring larger max_rx_pkt_len than the size of user-provided
mbuf. The size of the stride isn't static anymore but dynamically
determined.
* enhance documentation.
* fix issues from review.
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 | 58 +++++
drivers/net/mlx5/Makefile | 5 +
drivers/net/mlx5/mlx5.c | 83 +++++++
drivers/net/mlx5/mlx5.h | 11 +
drivers/net/mlx5/mlx5_defs.h | 18 ++
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 | 307 +++++++++++++++++++++---
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, 992 insertions(+), 76 deletions(-)
--
2.11.0
More information about the dev
mailing list