qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Andrea Bolognani <abologna@redhat.com>,
	Cole Robinson <crobinso@redhat.com>,
	libvirt-list@redhat.com, qemu-devel@nongnu.org,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [libvirt] [PATCH 4/6] qemu: Wire up disk model=virtio-{non-}transitional
Date: Wed, 16 Jan 2019 15:40:42 +0000	[thread overview]
Message-ID: <20190116154042.GA20275@redhat.com> (raw)
In-Reply-To: <20190116144543.GA14807@habkost.net>

On Wed, Jan 16, 2019 at 12:45:43PM -0200, Eduardo Habkost wrote:
> On Wed, Jan 16, 2019 at 02:37:22PM +0000, Daniel P. Berrangé wrote:
> > On Wed, Jan 16, 2019 at 03:31:49PM +0100, Andrea Bolognani wrote:
> > > On Wed, 2019-01-16 at 12:44 +0000, Daniel P. Berrangé wrote:
> > > > On Wed, Jan 16, 2019 at 01:29:13PM +0100, Andrea Bolognani wrote:
> > > > > On Wed, 2019-01-16 at 11:39 +0000, Daniel P. Berrangé wrote:
> > > > > > In the
> > > > > > future they may add properties to, or change the defaults on, the
> > > > > > -transitional or -non-transitional devices only, associated with
> > > > > > new machine type versions. If libvirt forever uses the old devices,
> > > > > > then we loose ability to take advantage of that.
> > > > > 
> > > > > Regardless of what libvirt ends up doing, from the QEMU user point
> > > > > of view I think it would be very surprising if eg. virtio-blk-pci
> > > > > plugged into a PCIe slot behaved differently from
> > > > > virtio-blk-pci-non-transitional plugged into the very same slot, or
> > > > > if virtio-net-pci,disable-legacy=false,disable-modern=false behaved
> > > > > differently from virtio-net-pci-transitional regardless of the slot
> > > > > it's plugged into, so moving away from that consistency should be a
> > > > > non-goal IMHO.
> > > > > 
> > > [...]
> > > > 
> > > > In this message Eduardo said virtio-blk-pci,disable-legacy and
> > > > virtio-blk-pci-non-transitional are only compatible with the
> > > > pc-4.0 machine types and earlier. There's no compat guarantee
> > > > of compat for future machine types:
> > > > 
> > > >   https://lists.gnu.org/archive/html/qemu-devel/2018-11/msg03762.html
> > > > 
> > > > If we didn't use the new QEMU device models right now, we could end
> > > > up trapped forever. The safe futureproof approach is to always use
> > > > the new devices models if available, and use disable-legacy for old
> > > > QEMU versions only, which we know will have old machine types for
> > > > which the compat guarantee is available.
> > > 
> > > Well, let's see if Eduardo is willing to reconsider the policy on
> > > compatibility between virtio-*-pci-{,non-}transitional and plain
> > > virtio-*-pci going forward based on the principle-of-least-surprise
> > > rationale outlined above :)
> > 
> > I think we should use the new devices no matter what. Libvirt generally
> > always strives to follow the latest QEMU best practice, even when new &
> > old way of doing something are functionally identical. Eventually we
> > would drop support for QEU < 4.0 and the old way would go away entirely.
> 
> It would also allow us to deprecate the old devices, which would
> be welcome.  Always using the new devices when available would be
> my recommendation.

I don't really see QEMU upstream deprecating the old devices any
time. There is sooooo much documentation that refers to them that
will never be fixed. 99% of users won't get any benefit from using
the new devices either, so there's no compelling reason to update
their existing configs or docs. They're not going to be a huge maint
burden to QEMU devs either given its just a toggle of a few props.

I might see a downstream distro deprecating them at some point
though, since they have a much tighter controlled usage scenario
than upstream.

> But I don't want to create unnecessary obstacles for libvirt, so
> if there's a real benefit in promising compatibility between both
> device types, we can still promise that on the QEMU side.

I don't think there's an obstacle for libvirt, as I don't see any
compelling reason to avoid the new devices when we have QEMU >= 4.0.

> Breaking compatibility on purpose is very unlikely, and the most
> likely accidents could be detected by
> tests/acceptance/virtio_version.py.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

  reply	other threads:[~2019-01-16 15:41 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1547420060.git.crobinso@redhat.com>
     [not found] ` <1ac81ba920b03d153f80236fea5aa81321e054fa.1547420060.git.crobinso@redhat.com>
     [not found]   ` <20190115165614.GL16157@redhat.com>
     [not found]     ` <624086124c9a2673c627203f3310fd63495e00c0.camel@redhat.com>
     [not found]       ` <20190116113953.GO20275@redhat.com>
     [not found]         ` <d3fd5d3bf9a6823b24756b4f376e20903ac1a575.camel@redhat.com>
     [not found]           ` <20190116124445.GS20275@redhat.com>
     [not found]             ` <2b4954e50ad51e7b3bdaf6b7b183254e2a1cd70d.camel@redhat.com>
     [not found]               ` <20190116143722.GY20275@redhat.com>
2019-01-16 14:45                 ` [Qemu-devel] [libvirt] [PATCH 4/6] qemu: Wire up disk model=virtio-{non-}transitional Eduardo Habkost
2019-01-16 15:40                   ` Daniel P. Berrangé [this message]
2019-01-16 16:24                     ` Andrea Bolognani
2019-01-16 23:24                       ` Eduardo Habkost

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190116154042.GA20275@redhat.com \
    --to=berrange@redhat.com \
    --cc=abologna@redhat.com \
    --cc=crobinso@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=libvirt-list@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).