Hi,

> -----Original Message-----
> From: Dmitry Kozlyuk <dkozl...@nvidia.com>
> Sent: Friday, November 19, 2021 4:32 PM
> To: dev@dpdk.org
> Cc: Raslan Darawsheh <rasl...@nvidia.com>; Michael Baum
> <michae...@nvidia.com>; Matan Azrad <ma...@nvidia.com>; Slava
> Ovsiienko <viachesl...@nvidia.com>
> Subject: [PATCH v3] common/mlx5: fix mempool registration
> 
> Mempool registration was not correctly processing
> mempools with RTE_PKTMBUF_F_PINEND_EXT_BUF flag set
> ("pinned mempools" for short), because it is not known
> at registration time whether the mempool is a pktmbuf one,
> and its elements may not yet be initialized to analyze them.
> Attempts had been made to recognize such pools,
> but there was no robust solution, only the owner of a mempool
> (the application or a device) knows its type.
> This patch extends common/mlx5 registration code
> to accept a hint that the mempool is a pinned one
> and uses this capability from net/mlx5 driver.
> 
> 1. Remove all code assuming pktmbuf pool type
>    or trying to recognize the type of a pool.
> 2. Register pinned mempools used for Rx
>    and their external memory on port start.
>    Populate the MR cache with all their MRs.
> 3. Change Tx slow path logic as follows:
>    3.1. Search the mempool database for a memory region (MR)
>         by the mbuf pool and its buffer address.
>    3.2. If not MR for the address is found for the mempool,
>       and the mempool contains only pinned external buffers,
>       perform the mempool registration of the mempool
>       and its external pinned memory.
>    3.3. Fall back to using page-based MRs in other cases
>       (for example, a buffer with externally attached memory,
>       but not from a pinned mempool).
> 
> Fixes: 690b2a88c2f7 ("common/mlx5: add mempool registration facilities")
> Fixes: fec28ca0e3a9 ("net/mlx5: support mempool registration")
> 
> Signed-off-by: Dmitry Kozlyuk <dkozl...@nvidia.com>
> Reviewed-by: Matan Azrad <ma...@nvidia.com>
> Reviewed-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>
> ---
> v3: fix build with GCC on RHEL7
> v2: 1) rebase on ToT
>     2) fix MR cache population

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh

Reply via email to