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 <magnuskulke@linux.microsoft.com> --- 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