[libvirt] RFC: managing "pci passthrough" usage of sriov VFs via a new network forward type

Daniel P. Berrange berrange at redhat.com
Wed Aug 24 09:48:23 UTC 2011


On Wed, Aug 24, 2011 at 04:16:33AM -0400, Laine Stump wrote:
> On 08/23/2011 06:50 AM, Daniel P. Berrange wrote:
> >>Although I realize that many people are predisposed to not like the
> >>idea of PCI passthrough of ethernet devices (including me), it seems
> >>that it's going to be used, so we may as well provide the management
> >>tools to do it in a sane manner.
> >Reluctantly I think we need to provide the neccessary information
> >underneath the<hostdev>  element. Fortunately we already have an
> >XML schema for port profile and such things, that we share between
> >the<interface>  device element and the<network>  schema.
> 
> 
> I had actually been considering from the beginning that a <hostdev>
> element would end up in the live XML (after being created based on
> the <interface> (and the <network> it references) while the guest is
> starting up). This keeps network device config out of hostdev space,
> and hostdev config out of network device space (and fits in with the
> idea of eliminating host-specific config info from the domain config
> (since the actual PCI device to be used isn't in the domain XML, but
> is instead determined at domain startup.)
> 
> If it's acceptable to add non-persistent <hostdev>s to the live XML,
> the main open item I see is that the management apps trying to
> migrate a guest containing them will need to understand that these
> transient <hostdev> devices will have replacements automatically
> plugged in on the destination by the networking code. For that
> matter, the management app shouldn't be unplugging them either (and
> neither should "virsh detach-device", for example), because they
> will require extra code not normally run during a PCI hot-unplug (to
> disassociate the port profile, and return the ethernet device to the
> network's pool) (So maybe the hostdev does need some reference back
> to the higher level device definition (in this case <interface>)
> after all. Bah.)

Having transient <hostdev>s does not really work nicely, because we want
all PCI devices in the guest to be persistently in the XML, so we can
ensure the guest PCI address does not get changed each time the guest
is run. It also doesn't really solve the problem of finding all attached
host devices for a guest, since you still have to look at two different
places when the guest is shutoff. IMHO the <hostdev> needs to be persistent

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list