[dpdk-stable] [PATCH] net/mlx5: fix external buffer pool registration for Rx queue

Matan Azrad matan at nvidia.com
Sun Feb 14 11:42:04 CET 2021



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: stable at dpdk.org
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
Acked-by: Matan Azrad <matan at nvidia.com>

Good catch!
> ---
>  drivers/net/mlx5/mlx5_mr.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)


More information about the stable mailing list