[PATCH] net/mlx5: fallback to verbs for Tx memory allocation if devx unsupported
Dariusz Sosnowski
dsosnowski at nvidia.com
Fri May 8 19:18:36 CEST 2026
Hi,
Thank you for the contribution. Please see below.
On Mon, Mar 23, 2026 at 05:04:02PM +0530, banoth.saikumar at oracle.com wrote:
> From: Banoth Saikumar <banoth.saikumar at oracle.com>
>
> Previously, the mlx5 PMD attempted to allocate consecutive Tx memory
> using DevX without checking whether the NIC actually supported DevX.
> This led to allocation failures on legacy or unsupported NICs.
>
> This patch adds a fallback mechanism: if DevX is not available, the PMD
> skips DevX-based allocation and allows the verbs path to handle memory
> allocation and registration. This improves compatibility with older
> NICs and ensures Tx queue setup proceeds correctly.
>
> Fixes: bbfab2eb2528 ("net/mlx5: allocate and release unique
> resources for Tx queues")
> Cc: stable at dpdk.org
>
> Signed-off-by: Banoth Saikumar <banoth.saikumar at oracle.com>
> ---
> drivers/net/mlx5/mlx5_trigger.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
> index 6c6f228..c9ce3d4 100644
> --- a/drivers/net/mlx5/mlx5_trigger.c
> +++ b/drivers/net/mlx5/mlx5_trigger.c
> @@ -1161,7 +1161,7 @@ static int mlx5_dev_allocate_consec_tx_mem(struct rte_eth_dev *dev)
> void *umem_buf = NULL;
>
> /* Legacy per queue allocation, do nothing here. */
> - if (priv->sh->config.txq_mem_algn == 0)
> + if (priv->sh->config.txq_mem_algn == 0 || !priv->sh->cdev->config.devx)
Please use mlx5_devx_obj_ops_en() function instead of directly
checking priv->sh->cdev->config.devx field.
> return 0;
> alignment = (size_t)1 << priv->sh->config.txq_mem_algn;
> total_size = priv->consec_tx_mem.sq_total_size + priv->consec_tx_mem.cq_total_size;
Best regards,
Dariusz Sosnowski
More information about the dev
mailing list