On Tue, 2019-01-15 at 10:23 -0500, Cole Robinson wrote: > On 01/15/2019 08:30 AM, 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. > > Okay thanks for the correction, so that sounds like for NON_TRANSITIONAL > we should also be forcing pcieFlags. Not really. As explained above, non-transitional VirtIO devices work when plugged into both conventional PCI and PCI Express slots, so virtioFlags sounds more appropriate: by using pcieFlags you'd limit non-transitional devices to q35 guests, while they can work just fine on i440fx too. > I've made those changes and updated > the branch here: https://github.com/crobinso/libvirt/tree/virtio I'm only gonna cherry-pick commit 1/6 from the GitHub branch to avoid any ambiguity when there's a divergence between what you posted on the mailing list and what you pushed on GitHub: more specifically, I'm gonna be reviewing the former. -- Andrea Bolognani / Red Hat / Virtualization -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list