Viacheslav Ovsiienko
a9ae33fbbc
net/mlx5: fix external buffer pool registration for Rx queue
On Rx queue creation the mlx5 PMD registers the data buffers of the specified pools for DMA operations. It scans the mem_list of the pools and creates the MRs (DMA related NIC objects) for the chunks found. If the pool is created with rte_pktmbuf_pool_create_extbuf() and refers to the external attached buffers (whose are in the area of application responsibility and it should explicitly register the data buffer memory for DMA with rte_dev_dma_map() call) the chunks contain the mbuf structures only, w/o any built-in data buffers. Hence, DMA with mlx5 NIC never happens to this area and there is no need to create MRs for these ones. The extra not needed MRs were created for the pools with external buffers causing MR cache load and performance was slightly affected. The patch checks the mbuf pool type and skips MR creation for the pools with external buffers. Fixes: bdb8e5b1ea7b ("net/mlx5: allow allocated mbuf with external buffer") Cc: stable@dpdk.org Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
DPDK is a set of libraries and drivers for fast packet processing. It supports many processor architectures and both FreeBSD and Linux. The DPDK uses the Open Source BSD-3-Clause license for the core libraries and drivers. The kernel components are GPL-2.0 licensed. Please check the doc directory for release notes, API documentation, and sample application information. For questions and usage discussions, subscribe to: users@dpdk.org Report bugs and issues to the development mailing list: dev@dpdk.org
Description
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%