v1:
https://www.redhat.com/archives/libvir-list/2019-June/msg00102.html
This is v2 of Marc-André's series with minor changes. I'm not taking over
this series, I just fixed these as part of the patch rebase so I can review
it :)
Changes since v1:
- rebase to master
- if test file build by dropping LDADDS usage
- syntax-check issues:
* use #pragma once
* if () bracket issues
* jump label indent issues
* error message %s usage
* size_t for loops
I didn't know much about vhost-user-gpu before this series, here's what
I've learned.
vhost-user is a generic mechanism that allows implementing virtio device
dataplane handling in a separate userspace process. vhost-user-gpu here
notably moves the virgl 3d handling out of the main qemu process. The
external process will be /usr/libexec/vhost-user-gpu, which comes from
qemu.git contrib/vhost-user-gpu code, first released in qemu-4.1.
Part of this series deals with discovering the location on disk of the
vhost-user-gpu binary, and what capabilities it provides. This uses a
similar mechanism to firmware.json, described in qemu
docs/interop/vhost-user.json
https://github.com/qemu/qemu/blob/master/docs/interop/vhost-user.json
qemu 4.1 ships a 50-qemu-gpu.json to match. I believe virtio-fs
will use a similar mechanism when it lands in upstream qemu, as
virtiofsd is a separate process that communicates with qemu over
vhost-user.
For a bit more background on vhost-user-gpu process handling and
the json interop motivation, here's some of the qemu discussion:
https://lists.nongnu.org/archive/html/qemu-devel/2018-08/msg02610.html
https://lists.nongnu.org/archive/html/qemu-devel/2018-09/msg00807.html
For this series, the XML to enable this is:
<video model='virtio' vhostuser='yes'>
<acceleration accel3d='yes' rendernode='/path/to/rendernode'/>
</video>
That's wrong, it's
<video>
<model type='virtio' vhostuser='yes'>
<acceleration accel3d='yes'
rendernode='/path/to/rendernode'/>
</model>
</video>
- Cole