[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