On Thu, Oct 06, 2016 at 12:58:51PM +0200, Andrea Bolognani wrote: > On Wed, 2016-10-05 at 18:36 +0100, Richard W.M. Jones wrote: > > > > (b) It would be nice to turn the whole thing off for people who don't > > > > care about / need hotplugging. > > > > > > I had contemplated having an "availablePCIeSlots" (or something like > > > that) that was either an attribute of the config, or an option in > > > qemu.conf or libvirtd.conf. If we had such a setting, it could be > > > set to "0". > > I remember some pushback when this was proposed. Maybe we > should just give up on the idea of providing spare > hotpluggable PCIe slots by default and ask the user to add > them explicitly after all. > > > Note that changes to libvirt conf files are not usable by libguestfs. > > > > The setting would need to go into the XML, and please also make it > > possible to determine if $random version of libvirt supports the > > setting, either by a version check or something in capabilities. > > Note that you can avoid using any PCIe root port at all by > assigning PCI addresses manually. It looks like the overhead > for the small (I'm assuming) number of devices a libguestfs > appliance will use is low enough that you will probably not > want to open that can of worm, though. For most apps the performance impact of the PCI enumeration is not a big deal. So having libvirt ensure there's enough available hotpluggable PCIe slots is reasonable, as long as we leave a get-out clause for libguestfs. This could be as simple as declaring that *if* we see one or more <controller type="pci"> in the input XML, then libvirt will honour those and not try to add new controllers to the guest. That way, by default libvirt will just "do the right thing" and auto-create a suitable number of controllers needed to boot the guest. Apps that want strict control though, can specify the <controllers> elements themselves. Libvirt can still auto-assign device addresses onto these controllers. It simply wouldn't add any further controllers itself at that point. NB I'm talking cold-boot here. So libguestfs would specify <controller> itself to the minimal set it wants to optimize its boot performance. 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/ :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list