While you certainly need ioeventfds to work for KVM guests it shouldn't be limited to that. We can run vhost-user backends for TCG guests and either use ioeventfds or in band signalling.
Maybe we should apply the same fix as b0aa77d36d (vhost-user: fix ioeventfd_enabled)? With this change I can run: $QEMU $OPTS \ -display gtk,gl=on \ -device vhost-user-gpu-pci,chardev=vhgpu \ -chardev socket,id=vhgpu,path=vhgpu.sock with: ./contrib/vhost-user-gpu/vhost-user-gpu \ -s vhgpu.sock \ -v and at least see things start-up (although the display gets rotated by 180 degrees). Signed-off-by: Alex Bennée <alex.ben...@linaro.org> --- backends/vhost-user.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/backends/vhost-user.c b/backends/vhost-user.c index 5dedb2d987..87d43fb03a 100644 --- a/backends/vhost-user.c +++ b/backends/vhost-user.c @@ -21,12 +21,6 @@ #include "io/channel-command.h" #include "hw/virtio/virtio-bus.h" -static bool -ioeventfd_enabled(void) -{ - return kvm_enabled() && kvm_eventfds_enabled(); -} - int vhost_user_backend_dev_init(VhostUserBackend *b, VirtIODevice *vdev, unsigned nvqs, Error **errp) @@ -35,8 +29,8 @@ vhost_user_backend_dev_init(VhostUserBackend *b, VirtIODevice *vdev, assert(!b->vdev && vdev); - if (!ioeventfd_enabled()) { - error_setg(errp, "vhost initialization failed: requires kvm"); + if (kvm_enabled() && !kvm_eventfds_enabled()) { + error_setg(errp, "vhost initialization failed: kvm required ioeventfds"); return -1; } -- 2.34.1