[PATCH] net/mlx5/hws: fix send queue drain on FW WQE destroy
Bing Zhao
bingz at nvidia.com
Mon May 5 18:02:15 CEST 2025
Hi,
> -----Original Message-----
> From: Maayan Kashani <mkashani at nvidia.com>
> Sent: Sunday, April 27, 2025 7:28 PM
> To: dev at dpdk.org
> Cc: Maayan Kashani <mkashani at nvidia.com>; Dariusz Sosnowski
> <dsosnowski at nvidia.com>; Raslan Darawsheh <rasland at nvidia.com>;
> stable at dpdk.org; Alex Vesker <valex at nvidia.com>; Slava Ovsiienko
> <viacheslavo at nvidia.com>; Bing Zhao <bingz at nvidia.com>; Ori Kam
> <orika at nvidia.com>; Suanming Mou <suanmingm at nvidia.com>; Matan Azrad
> <matan at nvidia.com>
> Subject: [PATCH] net/mlx5/hws: fix send queue drain on FW WQE destroy
>
> Queue sync operation was skipped on rule destroy.
> Unlike on fw wqe rule create in which both fence and notify_hw are set to
> true, on destroy fence was set to false causing previous queue operation
> to be stuck in the queue forever.
> Example:
> rule_a - HW rule, rule_b - FW WQE rule.
> Sequence:
> rule_a destroy, burst=1 (HW rule put to queue but no DB)
> rule_b destroy, burst=0 (FW WQE rule cmd but no queue sync)
> Outcome:
> rule_a is stuck forever in the queue - no completion.
>
> Fixes: 338aaf911665 ("net/mlx5/hws: add send FW match STE using gen WQE")
> Cc: stable at dpdk.org
>
> Signed-off-by: Alex Vesker <valex at nvidia.com>
> Signed-off-by: Maayan Kashani <mkashani at nvidia.com>
> ---
> drivers/net/mlx5/hws/mlx5dr_send.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/mlx5/hws/mlx5dr_send.c
> b/drivers/net/mlx5/hws/mlx5dr_send.c
> index e121c7f7ed5..d01fc7ef2ca 100644
> --- a/drivers/net/mlx5/hws/mlx5dr_send.c
> +++ b/drivers/net/mlx5/hws/mlx5dr_send.c
> @@ -339,7 +339,7 @@ void mlx5dr_send_stes_fw(struct mlx5dr_send_engine
> *queue,
> pdn = ctx->pd_num;
>
> /* Writing through FW can't HW fence, therefore we drain the queue
> */
> - if (send_attr->fence)
> + if (send_attr->fence || send_attr->notify_hw)
> mlx5dr_send_queue_action(ctx,
> queue_id,
> MLX5DR_SEND_QUEUE_ACTION_DRAIN_SYNC);
> --
> 2.21.0
Acked-by: Bing Zhao <bingz at nvidia.com>
Thanks
More information about the dev
mailing list