Go to file
Dmitry Kozlyuk 7297d2cdec common/mlx5: fix external memory pool registration
Registration of packet mempools with RTE_PKTMBUF_POOL_PINNED_EXT_MEM
was performed incorrectly: after population of such mempool chunks
only contain memory for rte_mbuf structures, while pointers to actual
external memory are not yet filled. MR LKeys could not be obtained
for external memory addresses of such mempools. Rx datapath assumes
all used mempools are registered and does not fallback to dynamic
MR creation in such case, so no packets could be received.

Skip registration of extmem pools on population because it is useless.
If used for Rx, they are registered at port start.
During registration, recognize such pools, inspect their mbufs
and recover the pages they reside in.

While MRs for these pages may already be created by rte_dev_dma_map(),
they are not reused to avoid synchronization on Rx datapath
in case these MRs are changed in the database.

Fixes: 690b2a88c2 ("common/mlx5: add mempool registration facilities")

Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
Reviewed-by: Matan Azrad <matan@nvidia.com>
Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
2021-11-10 15:44:42 +01:00
.ci ci: add ppc64le cross compilation in GHA 2021-11-10 11:48:01 +01:00
.github/workflows ci: add ppc64le cross compilation in GHA 2021-11-10 11:48:01 +01:00
app build: factorize jansson availability check 2021-11-10 16:23:05 +01:00
buildtools buildtools: fix build with Meson 0.60 2021-11-03 14:16:29 +01:00
config eal/arm64: support ASan 2021-11-12 15:30:00 +01:00
devtools devtools: forbid indent with tabs in Meson 2021-11-02 19:25:30 +01:00
doc eal/arm64: support ASan 2021-11-12 15:30:00 +01:00
drivers common/mlx5: fix external memory pool registration 2021-11-10 15:44:42 +01:00
examples examples: skip build when missing dependencies 2021-11-10 11:42:34 +01:00
kernel kni: update kernel API to set random MAC address 2021-11-08 11:51:39 +01:00
lib power: remove unused poll counter 2021-11-12 15:43:49 +01:00
license lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
usertools usertools/devbind: update octeontx2 DMA device 2021-11-10 14:15:39 +01:00
.editorconfig doc: add Meson coding style to contributors guide 2021-04-21 14:04:09 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore gpudev: introduce GPU device class library 2021-11-08 17:20:52 +01:00
.travis.yml version: 21.11-rc0 2021-08-17 08:37:52 +02:00
ABI_VERSION version: 21.11-rc0 2021-08-17 08:37:52 +02:00
MAINTAINERS dma/dpaa: introduce DPAA DMA driver skeleton 2021-11-10 13:48:38 +01:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt config: add option for atomic mbuf reference counting 2021-10-25 17:53:30 +02:00
meson.build lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 21.11-rc2 2021-11-09 00:45:12 +01:00

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