[libvirt] [RFC PATCH 0/7] Enable vfio-pci 'property' for mediated devices

Erik Skultety eskultet at redhat.com
Wed Jun 6 12:49:24 UTC 2018


On Tue, Jun 05, 2018 at 11:52:03AM +0200, Gerd Hoffmann wrote:
>   Hi,
>
> > > TL;DR:
> > > - we have a new attribute value for vfio-pci mediated devices called 'display'
> > >     -> devices can now format this new 'display=on/off' property to the cmdline
>
> Good.
>
> > > - if user enables the vfio display (display=on) but doesn't enable OpenGL for
> > >     Spice, we automatically assume the usage of '-display egl-headless'
>
> Hmm, I think it would be better to have egl-headless explicitly
> configured in the domain xml instead of doing it automagically depending
> on configuration.

I was thinking about that earlier, then we had a private conversation where I
asked why there's no documentation on egl-headless in QEMU to which you replied
that the future of egl-headless being uncertain, especially once there's remote
opengl renderer support (as opposed to local nowadays). So I took a bit of a
safe path here and only made the changes to the command line, thus leaving us
with a way of easily ditching that if QEMU decides to deprecate egl-headless
completely. So, if QEMU can guarantee supporting egl-headless (of course you
can discourage usage of it...) then we surely can expose it through the XML,
but I'd really wouldn't want to end up with an XML setting which we won't be
able to satisfy at some point in the future. More importantly though,
egl-headless was introduced in 2.10 IIRC, but I don't see any way for libvirt
to use any kind of introspection here, there's no capability for egl-headless,
I see it defined as a value for DisplayType in the qapi scheme (ui.json), but
I don't see any query command. The way I handled it here is easy, I'm querying
vfio display support which was introduced in 2.12 which is newer, but I'm not
sure about the virgl + vnc case below, because that one doesn't need vfio
display=on/off support.

>
> First, I'd prefer to allow non-opengl configuration for vfio displays.
> nvidia has its own non-standard ways of doing things, which causes
> problems now and then, so I'd like to have an easy way out in case
> using egl-headless on nvidia fails to work properly.
>
> It's a bit ugly that we have to depend on qemu throwing errors in case
> the vfio display uses dma-bufs (and therefore requires opengl) then
> because libvirt can't easily probe the vfio display type.
>
> Second, you can use egl-headless for other use cases too, for example to
> use virgl with vnc.

Yep, that makes sense for us to support.

Erik




More information about the libvir-list mailing list