
Hi,
b) Rather than a "legacy-only" model for virtio-0.9, it would be more useful to have "transitional". This way the config would work for older OSes that don't support virtio-1.0, and when/if the OS was upgraded such that it supported virtio-1.0, that would be automatically used without needing to change the config.
Having a legacy-only (instead of transitional) model could be useful for regression-testing (i.e. whenever virtio-0.9 mode still works properly in guests with virtio-1.0 support). But that is pretty much the only reason I can think of to prefer the virtio-0.9 devices being legacy-only instead of transitional.
A) libosinfo starts telling consumers that the preferred virtio device model for the relevant OSes is "virtio-0.9", and leaves the recommendation for other OSes as "virtio".
B) libvirt adds a "virtio-0.9" model for all virtio devices that actually have virtio-0.9 support (a couple of devices never existed prior to virtio-1.0 (rng and ???) so virtio-0.9 would be nonsensical for them).
input, gpu are 1.0 only too.
C) inside libvirt, the implementation of the "virtio-0.9" model is identical to "virtio", except that the VIR_PCI_CONNECT_TYPE flags for these devices contain VIR_PCI_CONNECT_TYPE_PCI rather than VIR_PCI_CONNECT_TYPE_PCIE, resulting in those devices being assigned to a legacy PCI slot, and thus they would be transitional mode by default.
Looks good to me. cheers, Gerd