[v2,4/5] vdpa/sfc: enable support for multi-queue
Checks
Commit Message
From: Abhimanyu Saini <absaini@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@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(-)
@@ -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;
@@ -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;
@@ -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