[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