On Wed, Jan 16, 2019 at 10:41:59AM +0100, Andrea Bolognani wrote: > On Tue, 2019-01-15 at 17:02 +0000, Daniel P. Berrangé wrote: > > On Tue, Jan 15, 2019 at 02:30:14PM +0100, Andrea Bolognani wrote: > > > Basically VirtIO 0.9 requires IO space to be available, and 1.0 did > > > away with that requirement because PCI Express, unlike conventional > > > PCI, allows devices *not* to have IO space. > > > > > > So transitional devices, which must work with both 0.9 and 1.0, can > > > depend on IO space being available and as such will only work when > > > plugged into conventional PCI slots, whereas non-transitional > > > devices don't need IO space and can thus be plugged into either > > > conventional PCI and PCI Express slots. > > > > > > Ultimately, then, transitional (rather than non-transitional) > > > devices are the ones that must be forced into conventional PCI > > > slots. > > > > Yes, the existing devices fail when placed in a PCI-X slot with certain > > guest OS. The -transitional devices are functionally identical to the > > existing devices. They serve as a hint to libvirt that it should never > > place them in a PCI-X slot. > > Not quite: existing devices (virtio-*-pci) will change their > behavior based on the slot they're plugged into, so they will show > up as non-transitional when connected to a PCI Express slot and as > transitional otherwise. We're only ever going to plug -transitional devices into PCI slots, not PCI-X slots. So the magic behaviour of the existing devices won't come into effect in libvirt's usage, when the XML has request a transitional device. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list