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

Daniel P. Berrange berrange at redhat.com
Wed Sep 7 16:40:14 UTC 2016


On Wed, Sep 07, 2016 at 05:52:02PM +0200, Peter Krempa wrote:
> On Wed, Sep 07, 2016 at 16:13:57 +0100, Daniel Berrange wrote:
> > On Wed, Sep 07, 2016 at 05:10:01PM +0200, Peter Krempa wrote:
> > > On Wed, Aug 24, 2016 at 00:20:42 +0200, Ján Tomko wrote:
> > > > https://bugzilla.redhat.com/show_bug.cgi?id=1227354
> 
> [...]
> 
> > > Obviously making the user responsible for correct setting is much
> > > easier.
> > > 
> > > Sigh. It'd be great if somebody else could also state their opinion on
> > > this. I can't say that I'm a big fan of this approach but it looks like
> > > as if it would be the only sensible one.
> > 
> > I tend to agree. I'd be incredibly happy if we didn't add any of this to
> > the XML and would simply "do the best thing" automatically.
> > 
> > I'm particularly not a fan of adding something "just in case there is a
> > bug"
> 
> Yep, that's why I don't see a reason for using --disable-modern in
> libvirt. It does not have any value besides working around "possible bugs".
> 
> On the other hand, I'm kind of worried that with "--disable-legacy" we
> are entering the domain of policy decisions as it's uncertain to me
> whether:
> * Enabling it would break guests with very old drivers.
> * Guest firmware actually supports the modern mode (both ovmf and bios)
> * other possible caveats that I can't think of right now
> 
> In such case we'd need to expose a knob to set it, but I'd prefer
> dropping the possibility to use legacy mode only since it's of no value.

We could take a completely different approach to this based on the model.

Effectively virtio-1.0 with disable-legacy is a completely separate hardware
from the original virtio-0.9, with or without disable-modern. You even get
a completely different PCI ID with disable-legacy set. So we could in fact
represent this in the XML as a different model called "virtio1.0", and
remap that to virtio+disable-legacy in the QEMU argv.

This is in fact what we've done with naming in libosinfo already, due to
the fact it has different PCI IDs and so is logically a different device.

IOW,

     <sound model="virtio"/>     == QEMU virtio
     <sound model="virtio1.0"/>  == QEMU virtio + disable-legacy

and explicitly don't provide any disable-modern flag mapping, since there
is no compelling use case for that.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list