[dpdk-dev] [PATCH 1/2] vdpa/mlx5: workaround FW first completion in start
Maxime Coquelin
maxime.coquelin at redhat.com
Wed Oct 13 11:55:58 CEST 2021
Hi Xueming,
On 9/23/21 10:17, Xueming Li wrote:
> After a vDPA application restart, qemu restores VQ with used and
> available index, new incoming packet triggers virtio driver to
> handle buffers. Under heavy traffic, no available buffer for
> firmware to receive new packets, no Rx interrupts generated,
> driver is stuck on endless interrupt waiting.
>
> As a firmware workaround, this patch sends a notification after
> VQ setup to ask driver handling buffers and filling new buffers.
>
> Signed-off-by: Xueming Li <xuemingl at nvidia.com>
> Reviewed-by: Matan Azrad <matan at nvidia.com>
> ---
> drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c b/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
> index f530646058..71470d23d9 100644
> --- a/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
> +++ b/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
> @@ -4,6 +4,7 @@
> #include <string.h>
> #include <unistd.h>
> #include <sys/mman.h>
> +#include <sys/eventfd.h>
>
> #include <rte_malloc.h>
> #include <rte_errno.h>
> @@ -367,6 +368,9 @@ mlx5_vdpa_virtq_setup(struct mlx5_vdpa_priv *priv, int index)
> goto error;
> }
> virtq->stopped = false;
> + /* Initial notification to ask qemu handling completed buffers. */
> + if (virtq->eqp.cq.callfd != -1)
> + eventfd_write(virtq->eqp.cq.callfd, (eventfd_t)1);
> DRV_LOG(DEBUG, "vid %u virtq %u was created successfully.", priv->vid,
> index);
> return 0;
>
Maybe this patch should be backported to stable branch?
If so, could you reply with the Fixes tag so that I can add it while
applying?
Thanks,
Maxime
More information about the dev
mailing list