
On Tue, 2018-11-20 at 14:14 -0500, Michael S. Tsirkin wrote:
On Tue, Nov 20, 2018 at 01:27:05PM +0100, Andrea Bolognani wrote:
On Mon, 2018-11-19 at 14:14 -0500, Michael S. Tsirkin wrote:
Well it works now - connect it to a bus and it figures out whether it should do transitional or not. You can force transitional in PCIe anyway but then you are limited to about 15 devices - probably sufficient for most people ...
That's not how it works, though: current virtio-*-pci devices will be transitional (and thus support older guest OS) or not based on the kind of slot you plug them into.
From the management point of view that's problematic, because libvirt (which takes care of the virtual hardware, including assigning PCI addresses to devices) has no knowledge of the guest OS running on said hardware, and management apps (which know about the guest OS and can figure out its capabilities using libosinfo) don't want to be in the business of assigning PCI addresses themselves.
Having separate transitional and non-transitional variants solves the issue because now management apps can query libosinfo to figure out whether the guest OS supports non-transitional virtio devices, and based on that they can ask libvirt to use either the transitional or non-transitional variant; from that, libvirt will be able to choose the correct slot for the device.
None of the above quite works if we have a single variant that morphs based on the slot, as we have today.
So can we get an ack on the patchset then?
Sure thing - whatever it might be worth :) Acked-by: Andrea Bolognani <abologna@redhat.com> -- Andrea Bolognani / Red Hat / Virtualization