[PATCH v2 4/5] vdpa/sfc: enable support for multi-queue
abhimanyu.saini at xilinx.com
abhimanyu.saini at xilinx.com
Thu Jul 14 10:44:50 CEST 2022
From: Abhimanyu Saini <absaini at amd.com>
Increase the number to default RX/TX queue pairs to 8,
and add MQ feature flag to vDPA protocol features.
Signed-off-by: Abhimanyu Saini <absaini at amd.com>
---
v2:
* Fix checkpatch warnings
* Add a cover letter
drivers/vdpa/sfc/sfc_vdpa_hw.c | 2 ++
drivers/vdpa/sfc/sfc_vdpa_ops.c | 10 ++++++----
drivers/vdpa/sfc/sfc_vdpa_ops.h | 2 +-
3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/vdpa/sfc/sfc_vdpa_hw.c b/drivers/vdpa/sfc/sfc_vdpa_hw.c
index a7018b1ffe..edb7e35c2c 100644
--- a/drivers/vdpa/sfc/sfc_vdpa_hw.c
+++ b/drivers/vdpa/sfc/sfc_vdpa_hw.c
@@ -286,6 +286,8 @@ sfc_vdpa_estimate_resource_limits(struct sfc_vdpa_adapter *sva)
SFC_VDPA_ASSERT(max_queue_cnt > 0);
sva->max_queue_count = max_queue_cnt;
+ sfc_vdpa_log_init(sva, "NIC init done with %u pair(s) of queues",
+ max_queue_cnt);
return 0;
diff --git a/drivers/vdpa/sfc/sfc_vdpa_ops.c b/drivers/vdpa/sfc/sfc_vdpa_ops.c
index f4c4f82605..6401d4e16f 100644
--- a/drivers/vdpa/sfc/sfc_vdpa_ops.c
+++ b/drivers/vdpa/sfc/sfc_vdpa_ops.c
@@ -24,14 +24,16 @@
(1ULL << VHOST_USER_PROTOCOL_F_SLAVE_REQ) | \
(1ULL << VHOST_USER_PROTOCOL_F_SLAVE_SEND_FD) | \
(1ULL << VHOST_USER_PROTOCOL_F_HOST_NOTIFIER) | \
- (1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD))
+ (1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD) | \
+ (1ULL << VHOST_USER_PROTOCOL_F_MQ))
/*
* Set of features which are enabled by default.
* Protocol feature bit is needed to enable notification notifier ctrl.
*/
#define SFC_VDPA_DEFAULT_FEATURES \
- (1ULL << VHOST_USER_F_PROTOCOL_FEATURES)
+ ((1ULL << VHOST_USER_F_PROTOCOL_FEATURES) | \
+ (1ULL << VIRTIO_NET_F_MQ))
#define SFC_VDPA_MSIX_IRQ_SET_BUF_LEN \
(sizeof(struct vfio_irq_set) + \
@@ -321,8 +323,8 @@ sfc_vdpa_virtq_stop(struct sfc_vdpa_ops_data *ops_data, int vq_num)
/* stop the vq */
rc = efx_virtio_qstop(vq, &vq_idx);
if (rc == 0) {
- ops_data->vq_cxt[vq_num].cidx = vq_idx.evvd_vq_cidx;
- ops_data->vq_cxt[vq_num].pidx = vq_idx.evvd_vq_pidx;
+ ops_data->vq_cxt[vq_num].cidx = vq_idx.evvd_vq_used_idx;
+ ops_data->vq_cxt[vq_num].pidx = vq_idx.evvd_vq_avail_idx;
}
ops_data->vq_cxt[vq_num].enable = B_FALSE;
diff --git a/drivers/vdpa/sfc/sfc_vdpa_ops.h b/drivers/vdpa/sfc/sfc_vdpa_ops.h
index 9dbd5b84dd..5c8e352de3 100644
--- a/drivers/vdpa/sfc/sfc_vdpa_ops.h
+++ b/drivers/vdpa/sfc/sfc_vdpa_ops.h
@@ -7,7 +7,7 @@
#include <rte_vdpa.h>
-#define SFC_VDPA_MAX_QUEUE_PAIRS 1
+#define SFC_VDPA_MAX_QUEUE_PAIRS 8
enum sfc_vdpa_context {
SFC_VDPA_AS_VF
--
2.18.2
More information about the dev
mailing list