Currently vhost-net is dropped for everything but KVM, this change
enables it also for the MSHV accelerator (HYPERV) in the generator
code and the mock.

Signed-off-by: Magnus Kulke <[email protected]>
---
 src/qemu/qemu_interface.c                                   | 6 +++---
 tests/qemuxml2argvmock.c                                    | 3 ++-
 .../mshv-x86_64-q35-headless.x86_64-latest+mshv.args        | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c
index edc53d5..61bcbc6 100644
--- a/src/qemu/qemu_interface.c
+++ b/src/qemu/qemu_interface.c
@@ -162,9 +162,9 @@ qemuInterfaceOpenVhostNet(virDomainObj *vm,
     if (!vhostnet_path)
         vhostnet_path = "/dev/vhost-net";
 
-    /* If running a plain QEMU guest, or
-     * if the config says explicitly to not use vhost, return now */
-    if (vm->def->virtType != VIR_DOMAIN_VIRT_KVM ||
+    /* Only enable vhost for KVM and MSHV guests, unless explicitly disabled. 
*/
+    if ((vm->def->virtType != VIR_DOMAIN_VIRT_KVM &&
+         vm->def->virtType != VIR_DOMAIN_VIRT_HYPERV) ||
         net->driver.virtio.name == VIR_DOMAIN_NET_DRIVER_TYPE_QEMU)
         return 0;
 
diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c
index 414b7ea..dd7209d 100644
--- a/tests/qemuxml2argvmock.c
+++ b/tests/qemuxml2argvmock.c
@@ -227,12 +227,13 @@ qemuInterfaceOpenVhostNet(virDomainObj *vm,
 {
     qemuDomainNetworkPrivate *netpriv = QEMU_DOMAIN_NETWORK_PRIVATE(net);
     size_t vhostfdSize = net->driver.virtio.queues;
+    int vType = vm->def->virtType;
     size_t i;
 
     if (!vhostfdSize)
          vhostfdSize = 1;
 
-    if (vm->def->virtType != VIR_DOMAIN_VIRT_KVM ||
+    if ((vType != VIR_DOMAIN_VIRT_KVM && vType != VIR_DOMAIN_VIRT_HYPERV) ||
         net->driver.virtio.name == VIR_DOMAIN_NET_DRIVER_TYPE_QEMU) {
         return 0;
     }
diff --git 
a/tests/qemuxmlconfdata/mshv-x86_64-q35-headless.x86_64-latest+mshv.args 
b/tests/qemuxmlconfdata/mshv-x86_64-q35-headless.x86_64-latest+mshv.args
index 10684b3..5816610 100644
--- a/tests/qemuxmlconfdata/mshv-x86_64-q35-headless.x86_64-latest+mshv.args
+++ b/tests/qemuxmlconfdata/mshv-x86_64-q35-headless.x86_64-latest+mshv.args
@@ -37,7 +37,7 @@ 
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-qemu_mshv/.config \
 -blockdev 
'{"driver":"file","filename":"/var/lib/libvirt/images/test.qcow2","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}'
 \
 -blockdev 
'{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}'
 \
 -device 
'{"driver":"virtio-blk-pci","bus":"pci.3","addr":"0x0","drive":"libvirt-1-format","id":"virtio-disk0","bootindex":1}'
 \
--netdev '{"type":"tap","fds":"XXXXXXX","id":"hostnet0"}' \
+-netdev 
'{"type":"tap","fds":"XXXXXXX","vhost":true,"vhostfds":"XXXXXXX","id":"hostnet0"}'
 \
 -device 
'{"driver":"virtio-net-pci","ioeventfd":true,"mq":true,"vectors":12,"netdev":"hostnet0","id":"net0","mac":"52:54:00:e5:48:5a","bus":"pci.1","addr":"0x0"}'
 \
 -chardev pty,id=charserial0 \
 -device 
'{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
-- 
2.34.1

Reply via email to