[dpdk-dev] [PATCH v1 0/6] net/mlx5: add Multi-Packet Rx support
Yongseok Koh
yskoh at mellanox.com
Sat Mar 10 02:25:26 CET 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 either mem-copied to a user-provided mbuf if length is
comparatively small or referenced by mbuf indirection otherwise. In case of
indirection, the Mempool for the direct mbufs will be allocated and managed
by PMD.
In order to make mbuf indirections to each packets in the buffer, buf_off
field is added to rte_mbuf structure and rte_pktmbuf_attach_at() is also
added.
Yongseok Koh (6):
mbuf: add buffer offset field for flexible indirection
net/mlx5: separate filling Rx flags
net/mlx5: add a function to rdma-core glue
net/mlx5: add Multi-Packet Rx support
net/mlx5: release Tx queue resource earlier than Rx
app/testpmd: conserve mbuf indirection flag
app/test-pmd/csumonly.c | 2 +
app/test-pmd/macfwd.c | 2 +
app/test-pmd/macswap.c | 2 +
doc/guides/nics/mlx5.rst | 23 +++
drivers/net/mlx5/Makefile | 5 +
drivers/net/mlx5/mlx5.c | 79 +++++++-
drivers/net/mlx5/mlx5.h | 3 +
drivers/net/mlx5/mlx5_defs.h | 20 ++
drivers/net/mlx5/mlx5_ethdev.c | 3 +
drivers/net/mlx5/mlx5_glue.c | 9 +
drivers/net/mlx5/mlx5_glue.h | 4 +
drivers/net/mlx5/mlx5_prm.h | 15 ++
drivers/net/mlx5/mlx5_rxq.c | 389 +++++++++++++++++++++++++++++++++++----
drivers/net/mlx5/mlx5_rxtx.c | 236 ++++++++++++++++++++----
drivers/net/mlx5/mlx5_rxtx.h | 16 +-
drivers/net/mlx5/mlx5_rxtx_vec.c | 4 +
drivers/net/mlx5/mlx5_rxtx_vec.h | 3 +-
lib/librte_mbuf/rte_mbuf.h | 158 +++++++++++++++-
18 files changed, 895 insertions(+), 78 deletions(-)
--
2.11.0
More information about the dev
mailing list