From: Paolo Bonzini <pbonzini@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Cc: mimu@linux.vnet.ibm.com, qemu-devel@nongnu.org,
"Alexander Graf" <agraf@suse.de>,
borntraeger@de.ibm.com, "Igor Mammedov" <imammedo@redhat.com>,
"Jiri Denemark" <jdenemar@redhat.com>,
"Andreas Färber" <afaerber@suse.de>,
rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH 0/2] target-i386: "custom" CPU model + script to dump existing CPU models
Date: Wed, 24 Jun 2015 16:38:51 +0200 [thread overview]
Message-ID: <558AC0FB.6090608@redhat.com> (raw)
In-Reply-To: <20150624141651.GS3134@thinpad.lan.raisama.net>
On 24/06/2015 16:16, Eduardo Habkost wrote:
> > So any single CPU flag now needs to be added in
> > - kvm
> > - qemu
> > - libvirt
> >
> > Next thing libvirt will decide it's a policy thing and so
> > needs to be pushed up to openstack.
>
> I don't think that will happen, but if they really decide do do it, why
> should we try to stop them? libvirt and OpenStack know what their users
> do/need better than us, and if they believe moving data to OpenStack
> will provide what users need, they are free to do it. I trust libvirt
> developers to do the right thing, here.
After talking to Daniel for more than 1 hour I actually think that
OpenStack's scheduler is totally broken with respect to QEMU upgrades.
For some reason they focused on CPU model changes, but actually there's
no past case where runnability actually changed with a QEMU upgrade, and
there will be no such future case; even without "enforce", QEMU
introduces new models long after all features have been available in
KVM. At this point CPU is no different from any other device.
At the same time, OpenStack's scheduler is not trying to use a machine
type that is available on all nodes of a compute node pool. I'm not
sure how one can be sure that migration would succeed in these
circumstances.
It's certainly okay for libvirt and OpenStack to use the host CPU
features in order to check whether a node will run a given VM. However,
libvirt should trust that QEMU developers will not prevent a VM from
running on a previously viable host, just because you change the machine
type.
And OpenStack should _really_ use the machine type as the abstract
representation of what is compatible with what inside a node pool. This
is what RHEV does, and I see no reason to do it differently. In
particular there will not be excessive fragmentation of the nodes into
too many pools, because a deployment with too many active machine types
is just asking for trouble.
The possible exception are weird cases involving nested virt and
outdated QEMU on the L0 host, but even those cases can be fixed just by
having an up-to-date cpu_map.xml.
Other random notes from my chat:
1) libvirt should _not_ change the flags that the user passes via XML
just because it thinks that QEMU has those flags. This makes it
possible for libvirt to keep cpu_map.xml up-to-date without worrying
about versioning.
2) libvirt should not add/remove flags when the user specifies
host-model (i.e. -cpu SandyBridge, not -cpu
SandyBridge,+f16c,+rdrand,+erms,+whatever). host-model has had so many
bugs reported for it that I hope this could be done unconditionally even
if it is not backwards-compatible. Or perhaps introduce a new name and
deprecate host-model. I don't know.
3) regarding "enforce", there are indeed some cases where it would break:
- Haswell/Broadwell CPU model after TSX removal
- qemu64 with KVM
- pretty much everything including qemu64 with TCG
So libvirt here could allow _now_ the user to specify enforce, either
via XML or via qemu.conf (or via XML + a default specified via qemu.conf).
So, I _hate_ to block a feature that is anyway useful for debugging.
And this feels too much like the typical "kernel developers don't like
systemd" rant. But it looks like this feature is not only too easy to
misuse: there are _already_ plans for misusing it and put the whole
machine compatibility issue under the rug in OpenStack. So I agree with
Andreas, and would prefer to have a serious discussion with the
OpenStack folks before accepting it.
Paolo
next prev parent reply other threads:[~2015-06-24 14:39 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-08 19:07 [Qemu-devel] [PATCH 0/2] target-i386: "custom" CPU model + script to dump existing CPU models Eduardo Habkost
2015-06-08 19:07 ` [Qemu-devel] [PATCH 1/2] target-i386: Introduce "-cpu custom" Eduardo Habkost
2015-06-08 19:07 ` [Qemu-devel] [PATCH 2/2] scripts: x86-cpu-model-dump script Eduardo Habkost
2015-06-08 20:18 ` [Qemu-devel] [PATCH 0/2] target-i386: "custom" CPU model + script to dump existing CPU models Jiri Denemark
2015-06-09 8:56 ` Daniel P. Berrange
2015-06-09 13:16 ` Eduardo Habkost
2015-06-23 12:32 ` Andreas Färber
2015-06-23 15:08 ` Eduardo Habkost
2015-06-23 15:32 ` Michael S. Tsirkin
2015-06-23 15:58 ` Eduardo Habkost
2015-06-23 16:15 ` Andreas Färber
2015-06-23 16:25 ` Daniel P. Berrange
2015-06-23 16:33 ` Michael S. Tsirkin
2015-06-23 16:38 ` Eduardo Habkost
2015-06-23 16:44 ` Andreas Färber
2015-06-23 17:08 ` Eduardo Habkost
2015-06-23 17:18 ` Andreas Färber
2015-06-23 17:27 ` Daniel P. Berrange
2015-06-23 17:41 ` Andreas Färber
2015-06-23 17:45 ` Eduardo Habkost
2015-06-23 17:58 ` Andreas Färber
2015-06-23 18:05 ` Daniel P. Berrange
2015-06-23 18:11 ` Eduardo Habkost
2015-06-23 17:55 ` Daniel P. Berrange
2015-06-23 17:39 ` Eduardo Habkost
2015-06-23 18:35 ` Andreas Färber
2015-06-23 19:25 ` Eduardo Habkost
2015-06-23 19:41 ` Andreas Färber
2015-06-23 19:53 ` Eduardo Habkost
2015-06-23 20:26 ` Eduardo Habkost
2015-06-23 21:38 ` Michael S. Tsirkin
2015-06-23 16:42 ` Daniel P. Berrange
2015-06-23 16:47 ` Andreas Färber
2015-06-23 17:11 ` Eduardo Habkost
2015-06-23 21:34 ` Michael S. Tsirkin
2015-06-24 14:24 ` Eduardo Habkost
2015-06-24 14:37 ` Michael S. Tsirkin
2015-06-24 15:44 ` [Qemu-devel] Not introducing new host-side requirements on new machine-type versions (was Re: [PATCH 0/2] target-i386: "custom" CPU model + script to dump existing CPU models) Eduardo Habkost
2015-06-24 15:58 ` Andreas Färber
2015-06-24 16:08 ` Eduardo Habkost
2015-06-24 16:15 ` Andreas Färber
2015-06-24 15:59 ` Paolo Bonzini
2015-06-23 17:13 ` [Qemu-devel] [PATCH 0/2] target-i386: "custom" CPU model + script to dump existing CPU models Daniel P. Berrange
2015-06-23 17:29 ` Andreas Färber
2015-06-23 17:42 ` Eduardo Habkost
2015-06-23 17:55 ` Andreas Färber
2015-06-23 17:58 ` Daniel P. Berrange
2015-06-23 21:28 ` Michael S. Tsirkin
2015-06-24 14:18 ` Eduardo Habkost
2015-06-24 14:24 ` Michael S. Tsirkin
2015-06-23 21:26 ` Michael S. Tsirkin
2015-06-23 21:23 ` Michael S. Tsirkin
2015-06-24 8:52 ` Daniel P. Berrange
2015-06-24 10:31 ` Michael S. Tsirkin
2015-06-24 14:16 ` Eduardo Habkost
2015-06-24 14:19 ` Michael S. Tsirkin
2015-06-24 14:35 ` Andreas Färber
2015-06-24 14:57 ` Michael S. Tsirkin
2015-06-24 15:43 ` Andreas Färber
2015-06-24 14:38 ` Paolo Bonzini [this message]
2015-06-24 14:54 ` Peter Maydell
2015-06-24 14:56 ` Paolo Bonzini
2015-06-24 15:58 ` Eduardo Habkost
2015-06-24 16:00 ` Paolo Bonzini
2015-06-23 16:40 ` Andreas Färber
2015-06-23 16:53 ` Daniel P. Berrange
2015-06-23 17:10 ` Andreas Färber
2015-06-23 17:24 ` Eduardo Habkost
2015-06-23 17:31 ` Daniel P. Berrange
2015-06-23 16:32 ` Eduardo Habkost
2015-06-23 17:01 ` Andreas Färber
2015-06-23 15:51 ` Daniel P. Berrange
2015-06-23 15:56 ` Michael S. Tsirkin
2015-06-23 16:00 ` Daniel P. Berrange
2015-06-23 16:30 ` Michael S. Tsirkin
2015-06-24 9:20 ` Jiri Denemark
2015-06-24 10:21 ` Michael S. Tsirkin
2015-06-24 10:31 ` Daniel P. Berrange
2015-06-24 10:40 ` Michael S. Tsirkin
2015-06-24 10:32 ` Paolo Bonzini
2015-06-16 17:40 ` 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=558AC0FB.6090608@redhat.com \
--to=pbonzini@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=jdenemar@redhat.com \
--cc=mimu@linux.vnet.ibm.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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).