vdpa/mlx5: Set an initial size on the VQ
authorDragos Tatulea <dtatulea@nvidia.com>
Wed, 26 Jun 2024 10:26:48 +0000 (13:26 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 9 Jul 2024 12:42:46 +0000 (08:42 -0400)
The virtqueue size is a pre-requisite for setting up any virtqueue
resources. For the upcoming optimization of creating virtqueues at
device add, the virtqueue size has to be configured.

The queue size check in setup_vq() will always be false. So remove it.

Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Reviewed-by: Cosmin Ratiu <cratiu@nvidia.com>
Message-Id: <20240626-stage-vdpa-vq-precreate-v2-12-560c491078df@nvidia.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vdpa/mlx5/net/mlx5_vnet.c

index db86e54..406cc59 100644 (file)
@@ -58,6 +58,8 @@ MODULE_LICENSE("Dual BSD/GPL");
  */
 #define MLX5V_DEFAULT_VQ_COUNT 2
 
+#define MLX5V_DEFAULT_VQ_SIZE 256
+
 struct mlx5_vdpa_cq_buf {
        struct mlx5_frag_buf_ctrl fbc;
        struct mlx5_frag_buf frag_buf;
@@ -1445,9 +1447,6 @@ static int setup_vq(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
        u16 idx = mvq->index;
        int err;
 
-       if (!mvq->num_ent)
-               return 0;
-
        if (mvq->initialized)
                return 0;
 
@@ -3523,6 +3522,7 @@ static void mvqs_set_defaults(struct mlx5_vdpa_net *ndev)
                mvq->ndev = ndev;
                mvq->fwqp.fw = true;
                mvq->fw_state = MLX5_VIRTIO_NET_Q_OBJECT_NONE;
+               mvq->num_ent = MLX5V_DEFAULT_VQ_SIZE;
        }
 }