diff mbox series

[v2] backends/vhost-user: remove the ioeventfd check

Message ID 20230130124728.175610-1-alex.bennee@linaro.org (mailing list archive)
State New, archived
Headers show
Series [v2] backends/vhost-user: remove the ioeventfd check | expand

Commit Message

Alex Bennée Jan. 30, 2023, 12:47 p.m. UTC
While ioeventfds are needed for good performance with KVM guests it
should not be a gating requirement. We can run vhost-user backends using
simulated ioeventfds or inband signalling.

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. Once lightdm takes over we never make it to the login
prompt and just get a blank screen.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Message-Id: <20221202132231.1048669-1-alex.bennee@linaro.org>

---
v2
  - reword commit message to make it clear we simulate ioeventfd
  - drop check altogether as we can fallback for KVM as well
---
 backends/vhost-user.c | 11 -----------
 1 file changed, 11 deletions(-)

Comments

Stefan Hajnoczi Jan. 30, 2023, 4:15 p.m. UTC | #1
On Mon, 30 Jan 2023 at 07:48, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> While ioeventfds are needed for good performance with KVM guests it
> should not be a gating requirement. We can run vhost-user backends using
> simulated ioeventfds or inband signalling.
>
> 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. Once lightdm takes over we never make it to the login
> prompt and just get a blank screen.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Message-Id: <20221202132231.1048669-1-alex.bennee@linaro.org>
>
> ---
> v2
>   - reword commit message to make it clear we simulate ioeventfd
>   - drop check altogether as we can fallback for KVM as well
> ---
>  backends/vhost-user.c | 11 -----------
>  1 file changed, 11 deletions(-)

Nice!

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
diff mbox series

Patch

diff --git a/backends/vhost-user.c b/backends/vhost-user.c
index 7bfcaef976..7aae57f56c 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,11 +29,6 @@  vhost_user_backend_dev_init(VhostUserBackend *b, VirtIODevice *vdev,
 
     assert(!b->vdev && vdev);
 
-    if (!ioeventfd_enabled()) {
-        error_setg(errp, "vhost initialization failed: requires kvm");
-        return -1;
-    }
-
     if (!vhost_user_init(&b->vhost_user, &b->chr, errp)) {
         return -1;
     }