[libvirt] [PATCH v5 00/20] Hi,

Cole Robinson crobinso at redhat.com
Tue Sep 24 17:20:39 UTC 2019


On 9/23/19 6:44 AM, marcandre.lureau at redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau at redhat.com>
> 
> This series adds support for running virtio GPUs in seperate
> processes, thanks to vhost-user backend.
> 
> The QEMU support landed for 4.1. There are several benefits of running
> the GPU/virgl in an external process, since Mesa is rather heavy on
> the qemu main loop, and may block for a while, or crash.
> 
> The external GPU process is started with one end of a socket pair, the
> other end is given to a QEMU chardev attached to a device. The
> external process is also added to the cgroup to limit resources usage.
> 
> 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'>
>      <driver name='vhostuser'/>
>      <acceleration accel3d='yes' rendernode='/path/to/rendernode'/>
>    </video>
> 
> rendernode is optional
> qemu_vhost_user.c handles vhost-user.json
> qemu_vhost_user_gpu.c handles the process management for
> vhost-user-gpu

I dropped patch #2 since there's discussion on it. Patch 10 needed a 
tests/Makefile.am adjustment to fix RPM build. Pushed now with those changes

Thanks,
Cole




More information about the libvir-list mailing list