[libvirt] [PATCHv5 00/13] qemu: allow disabling certain virtio revisions

Michael S. Tsirkin mst at redhat.com
Mon Sep 19 19:07:13 UTC 2016


On Wed, Sep 07, 2016 at 09:38:04PM +0200, Sascha Silbe wrote:
> Dear Laine,
> 
> Laine Stump <laine at laine.org> writes:
> 
> > On 09/07/2016 02:35 PM, Sascha Silbe wrote:
> >> "Daniel P. Berrange" <berrange at 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.

So in a quest to give users the most flexibility QEMU interface became messy
as usual.  Sorry about that :(

> so
> virtio-*-ccw devices don't recognise that switch:
> 
> silbe at 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 at 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).

So the point is that qemu would typically do the right thing.
So maybe for the model it makes sense to have
	legacy/transitional/non-transitional/auto

and then translate it to whatever qemu flags are.

> 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.

Can be helpful as work-arounds for guest/host bugs as well.


> 
> > For the effect, you would 
> > need to ask a qemu virtio person, or even better - a qemu s390 person 
> > who knows something about about virtio. I Cc'ed Michael (the former) and 
> > Cornelia Huck (the latter, according to this patch I found: 
> > https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg01024.html )
> 
> Thanks, but I'm working on qemu for s390x myself. :)
> 
> Sascha
> -- 
> Softwareentwicklung Sascha Silbe, Niederhofenstraße 5/1, 71229 Leonberg
> https://se-silbe.de/
> USt-IdNr. DE281696641




More information about the libvir-list mailing list