On Mon, 19 Sep 2016 22:07:13 +0300
"Michael S. Tsirkin" <mst(a)redhat.com> wrote:
On Wed, Sep 07, 2016 at 09:38:04PM +0200, Sascha Silbe wrote:
> Dear Laine,
>
> Laine Stump <laine(a)laine.org> writes:
>
> > On 09/07/2016 02:35 PM, Sascha Silbe wrote:
> >> "Daniel P. Berrange" <berrange(a)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),
Legacy is a generic concept found in virtio 1 spec.
Modern isn't, virtio 1 only has transitional/non-transitional.
If you want to stick to the spec you should therefore
use
legacy/transitional/non-transitional
at the API level.
It is true that not all transports have all options.
ccw does not support non-transitional devices,
mmio does not support transitional ones.
We basically have:
- legacy devices: pci, ccw
- standard-compliant devices: pci, ccw, mmio
- of these, pci and ccw have transitional support, which can be
disabled for pci
Per default, I don't think libvirt should offer legacy devices - I see
this as a machine-version backwards-compatibility option which should
be handled via the machine version only.
It makes sense to have a way to force pci devices to either
transitional or non-transitional. For ccw and mmio, this is not
applicable. Therefore, I think libvirt should offer a switch to handle
transitional/non-transitional pci only and not provide any other
virtio-version switches.