[PATCH] vdpa/mlx5: workaround queue stop with traffic
Maxime Coquelin
maxime.coquelin at redhat.com
Wed Jan 26 14:20:48 CET 2022
On 11/22/21 14:12, Matan Azrad wrote:
> When the event thread polls traffic and a virtq is stopping, the FW loses
> synchronization in the virtq indexes.
>
> It causes LM failure on synchronization between the HOST indexes to
> the GUEST indexes.
>
> Unset the event thread before the queue stop in the LM process.
>
> Fixes: 31b9c29c86af ("vdpa/mlx5: support close and config operations")
> Cc: stable at dpdk.org
>
> Signed-off-by: Matan Azrad <matan at nvidia.com>
> Acked-by: Xueming Li <xuemingl at nvidia.com>
> ---
> drivers/vdpa/mlx5/mlx5_vdpa.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c
> index b9e84dd9bf..8dfaba791d 100644
> --- a/drivers/vdpa/mlx5/mlx5_vdpa.c
> +++ b/drivers/vdpa/mlx5/mlx5_vdpa.c
> @@ -250,10 +250,10 @@ mlx5_vdpa_dev_close(int vid)
> DRV_LOG(ERR, "Invalid vDPA device: %s.", vdev->device->name);
> return -1;
> }
> - if (priv->configured)
> - ret |= mlx5_vdpa_lm_log(priv);
> mlx5_vdpa_err_event_unset(priv);
> mlx5_vdpa_cqe_event_unset(priv);
> + if (priv->configured)
> + ret |= mlx5_vdpa_lm_log(priv);
> mlx5_vdpa_steer_unset(priv);
> mlx5_vdpa_virtqs_release(priv);
> mlx5_vdpa_event_qp_global_release(priv);
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
Thanks,
Maxime
More information about the stable
mailing list