[libvirt] [PATCH] RFC: qemu: add spice/virgl rendernode

Daniel P. Berrange berrange at redhat.com
Mon Feb 13 13:47:01 UTC 2017


On Mon, Feb 13, 2017 at 08:08:20AM -0500, Marc-André Lureau wrote:
> Hi
> 
> ----- Original Message -----
> > On Mon, Feb 13, 2017 at 07:19:04AM -0500, Marc-André Lureau wrote:
> > > Hi
> > > 
> > > ----- Original Message -----
> > > > On Mon, Feb 13, 2017 at 03:51:48PM +0400, marcandre.lureau at redhat.com
> > > > wrote:
> > > > > From: Marc-André Lureau <marcandre.lureau at redhat.com>
> > > > > 
> > > > > I am working on a WIP series to add QEMU Spice/virgl rendernode option.
> > > > > Since rendernodes are not stable across reboots, I propose that QEMU
> > > > > accepts also a PCI address (other bus types may be added in the
> > > > > future).
> > > > 
> > > > Hmm, can you elaborate on this aspect ?  It feels like a parallel
> > > > to saying NIC device names are not stable, so we should configure
> > > > guests using PCI addresses instead of 'eth0', etc but we stuck with
> > > > using NIC names in libvirt on the basis that you can create udev
> > > > rules to ensure stable naming ?
> > > > 
> > > > So is there not a case to be made that if you want stable render
> > > > device names when multiple NICs are present, then you should use
> > > > udev to ensure a given device always maps to the same PCI dev.
> > > 
> > > I thought it was simpler to use a PCI address (do you expect users
> > > to create udev rules for the GPUs?)
> > 
> > Well most users will only have 1 GPU so surely this won't be a problem
> > in the common case.  Is it possible to get some stable naming rules into
> > udev upstream though, so all distros get stable names by default
> 
> Optimus is getting more and more mainstream, see recent Fedora desktop effort (fwiw I have a t460p nouveau/i915). I don't think a random user of such hw/laptop should have to create udev rules.
> 
> I suppose systemd-udev could learn to create stable path with help
> from src/udev/udev-builtin-path_id.c. I will work on it. However,
> I have virt-manager code to lookup GPU infos/path, using libdrm,
> and it is unlikely that it will work with the udev rules. So I'll
> have to patch libdrm to support that too.

The generic goal is that Libvirt should be providing enough information
for apps to be able to configure the guest, without resorting to side
channels like libdrm. This is to ensure that apps can manage guests
with no loss of functionality even when connected to a remote libvirt.
e.g. libdrm isn't going to be able to enumerate remote GPUs, for
virt-manager, so the neccessary info needs to be exposed by libvirt
via its virNodeDevice APIs. We can already identify the PCI device
and that its a GPU device, but I imagine we're not reporting any
data about DRI render paths associated with the GPUs we report.
So I think that's a gap we'd need to fill

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|




More information about the libvir-list mailing list