[libvirt] [PATCH v2 00/16] Add vhost-user-gpu support

Cole Robinson crobinso at redhat.com
Fri Aug 23 16:40:28 UTC 2019


On 8/23/19 12:21 PM, Cole Robinson wrote:
> 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




More information about the libvir-list mailing list