Command to enable shadow virtqueue.
Signed-off-by: Eugenio Pérez <[email protected]>
---
qapi/net.json | 23 +++++++++++++++++++++++
hw/virtio/vhost-vdpa.c | 8 ++++++++
2 files changed, 31 insertions(+)
diff --git a/qapi/net.json b/qapi/net.json
index 7fab2e7cd8..a2c30fd455 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -79,6 +79,29 @@
{ 'command': 'netdev_del', 'data': {'id': 'str'},
'allow-preconfig': true }
+##
+# @x-vhost-enable-shadow-vq:
+#
+# Use vhost shadow virtqueue.
+#
+# @name: the device name of the VirtIO device
+#
+# @enable: true to use the alternate shadow VQ notifications
+#
+# Returns: Always error, since SVQ is not implemented at the moment.
+#
+# Since: 6.2
+#
+# Example:
+#
+# -> { "execute": "x-vhost-enable-shadow-vq",
+# "arguments": { "name": "virtio-net", "enable": false } }
+#
+##
+{ 'command': 'x-vhost-enable-shadow-vq',
+ 'data': {'name': 'str', 'enable': 'bool'},
+ 'if': 'defined(CONFIG_VHOST_KERNEL)' }
+
##
# @NetLegacyNicOptions:
#
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 4fa414feea..c63e311d7c 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -23,6 +23,8 @@
#include "cpu.h"
#include "trace.h"
#include "qemu-common.h"
+#include "qapi/qapi-commands-net.h"
+#include "qapi/error.h"
static bool vhost_vdpa_listener_skipped_section(MemoryRegionSection *section)
{
@@ -656,6 +658,12 @@ static bool vhost_vdpa_force_iommu(struct vhost_dev *dev)
return true;
}
+
+void qmp_x_vhost_enable_shadow_vq(const char *name, bool enable, Error **errp)
+{
+ error_setg(errp, "Shadow virtqueue still not implemented");
+}
+
const VhostOps vdpa_ops = {
.backend_type = VHOST_BACKEND_TYPE_VDPA,
.vhost_backend_init = vhost_vdpa_init,
--
2.27.0