From: Viacheslav Ovsiienko
> 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: sta...@dpdk.org
>
> Signed-off-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>
Acked-by: Matan Azrad <ma...@nvidia.com>
Good catch!
> ---
> drivers/net/mlx5/mlx5_mr.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)