
On 09/07/2016 03:38 PM, Sascha Silbe wrote:
Dear Laine,
Laine Stump <laine@laine.org> writes:
On 09/07/2016 02:35 PM, Sascha Silbe wrote:
"Daniel P. Berrange" <berrange@redhat.com> writes: [...]
<sound model="virtio"/> == QEMU virtio <sound model="virtio1.0"/> == QEMU virtio + disable-legacy
What would this do for devices using the virtio-ccw transport? From libvirt's point of view, the option "disable-legacy=on" would be added to the device's commandline argument. Which would break s390x guests. virtio-ccw doesn't have any concept of "legacy" or "modern" devices (that's purely a virtio-pci concept), so virtio-*-ccw devices don't recognise that switch:
Okay, so you already know what would happen in qemu. Looking at Jan's code in this patch series, (which I didn't do before, but should have) when someone tries to set the option for disable-legacy=on when the device address is anything except PCI , it logs an error and fails. No code for Dan's suggestion has been written yet, but if there's no concept of a legacy mode for virtio-*-ccw, then we would do the same thing. And also I would guess that libosinfo would never suggest that anyone try to add a "virtio1.0" model device to an s390 virtual machine).
silbe@oc4731375738:~$ ~/build/qemu-devel/x86_64-softmmu/qemu-system-x86_64 -device virtio-blk,help 2>&1 |grep legacy virtio-blk-pci.disable-legacy=OnOffAuto (on/off/auto) silbe@oc4731375738:~$ ~/build/qemu-devel/s390x-softmmu/qemu-system-s390x -device virtio-blk,help 2>&1 |grep legacy
That nicely illustrates the issue I have with a) mixing virtio-pci legacy/modern into the model name and b) conflating it with virtio 0.9/1.0 (or transitional/non-transitional for that matter).
FWIW, the thing closest to virtio-pci legacy/modern is virtio-ccw max_revision. But I doubt there's any reason to set this beyond debugging and testing.
Definitely - once we've added an option to libvirt, we have to keep it there forever - our backward compatibility guarantee requires it. So we don't want to add anything unless there's a clear use for it.