From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Andrea Bolognani <abologna@redhat.com>
Cc: Laine Stump <laine@redhat.com>, Libvirt <libvir-list@redhat.com>,
qemu list <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [libvirt] clean/simple Q35 support in libvirt+QEMU for guest OSes that don't support virtio-1.0
Date: Fri, 17 Aug 2018 11:43:51 +0100 [thread overview]
Message-ID: <20180817104351.GG11124@redhat.com> (raw)
In-Reply-To: <e8a14a22915569b492adb414e5ccc98dcf64a24d.camel@redhat.com>
On Fri, Aug 17, 2018 at 12:35:11PM +0200, Andrea Bolognani wrote:
> On Fri, 2018-08-17 at 10:29 +0100, Daniel P. Berrangé wrote:
> > On Thu, Aug 16, 2018 at 06:20:29PM -0400, Laine Stump wrote:
> > > 5) Some guest OSes that we still want to support (and which would
> > > otherwise work okay on a Q35 virtual machine) have virtio drivers too
> > > old to support virtio-1.0 (CentOS6 and RHEL6 are examples of such OSes),
> > > but due to the chain of reasons listed above, the "standard" config for
> > > a Q35 guest generated by libvirt doesn't support virtio-0.9, hence
> > > doesn't support these guest OSes.
> >
> > Note when talking about "support" you're really saying it from the
> > downstream vendor, specifically RHEL, POV. From upstream or Fedora POV
> > essentially all x86 OS ever made are in scope for running under QEMU
> > if suitable virtual hardware models have been provided. QEMU doesn't
> > maintain any whitelist of "supported" OS that differs from what is
> > technically capable of being run, in the way downstream vendors do.
>
> Well, at least in the case of RHEL 6, "not supported" means that it
> will not boot at all on q35 with the default guest topology created
> by libvirt, so that's not really a downstream-only problem :)
I mean from an upstream POV we still support RHEL-6 fine in i440fx,
so there's no reason to particularly care about RHEL-6 with q35
upstream. It is only downstream decision to try to force it to
use q35, despite it not working right today.
> > > C) inside libvirt, the implementation of the "virtio-0.9" model is
> > > identical to "virtio", except that the VIR_PCI_CONNECT_TYPE flags for
> > > these devices contain VIR_PCI_CONNECT_TYPE_PCI rather than
> > > VIR_PCI_CONNECT_TYPE_PCIE, resulting in those devices being assigned to
> > > a legacy PCI slot, and thus they would be transitional mode by default.
> >
> > For 'virtio-0.9' libvirt should set "disable-modern=yes" in QEMU args
> >
> > For 'virtio-1.0' libvirt should set "disable-legacy=yes" in QEMU args
>
> If we decide we want to explicitly spell out the options instead
> of relying on QEMU changing behavior based on the slot type, which
> is probably a good idea anyway, I think we should have
>
> virtio-0.9 => disable-legacy=no,disable-modern=no
> virtio-1.0 => disable-legacy=yes,disable-modern=no
>
> There's basically no reason to have a device legacy-only rather
> than transitional, and spelling out both options instead of only
> one of them just seems more robust.
>From a testing POV it is desirable to be able to have legacy-only.
There is also possibility that guest OS impl 1.0 in a buggy manner,
so forcing legacy only is desirable.
The existing device still already provides a transitional option
on i440fx, and on Q35 if you do explicit placement in a PCI slot.
So I don't think there's a good reason to have a second transitional
device type, especially if we're naming it virtio-0.9, it is rather
misleading if it would be in fact able to run virtio-1.0 mode.
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 :|
next prev parent reply other threads:[~2018-08-17 10:44 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-16 22:20 [Qemu-devel] clean/simple Q35 support in libvirt+QEMU for guest OSes that don't support virtio-1.0 Laine Stump
2018-08-17 7:05 ` [Qemu-devel] [libvirt] " Gerd Hoffmann
2018-08-17 9:29 ` [Qemu-devel] " Daniel P. Berrangé
2018-08-17 10:35 ` [Qemu-devel] [libvirt] " Andrea Bolognani
2018-08-17 10:43 ` Daniel P. Berrangé [this message]
2018-08-17 13:13 ` Markus Armbruster
2018-08-17 13:24 ` Daniel P. Berrangé
2018-08-29 11:25 ` Markus Armbruster
2018-08-17 13:59 ` Andrea Bolognani
2018-08-21 18:21 ` Laine Stump
2018-08-22 10:36 ` Andrea Bolognani
2018-08-22 10:52 ` Daniel P. Berrangé
2018-08-22 12:01 ` Eduardo Habkost
2018-08-22 12:26 ` Daniel P. Berrangé
2018-08-22 12:54 ` Eduardo Habkost
2018-08-22 13:44 ` Daniel P. Berrangé
2018-08-22 14:18 ` Eduardo Habkost
2018-08-22 14:57 ` Daniel P. Berrangé
2018-08-22 15:49 ` Eduardo Habkost
2018-08-22 16:02 ` Daniel P. Berrangé
2018-08-22 14:37 ` Laine Stump
2018-08-22 15:01 ` Daniel P. Berrangé
2018-08-23 16:08 ` Markus Armbruster
2018-08-23 16:26 ` Daniel P. Berrangé
2018-08-23 17:04 ` Eduardo Habkost
2018-08-23 19:10 ` Markus Armbruster
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=20180817104351.GG11124@redhat.com \
--to=berrange@redhat.com \
--cc=abologna@redhat.com \
--cc=laine@redhat.com \
--cc=libvir-list@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).