From: Jiri Denemark <jdenemar@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: mimu@linux.vnet.ibm.com, "Michael S. Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org, Alexander Graf <agraf@suse.de>,
borntraeger@de.ibm.com, Igor Mammedov <imammedo@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
rth@twiddle.net, Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 0/2] target-i386: "custom" CPU model + script to dump existing CPU models
Date: Wed, 24 Jun 2015 11:20:50 +0200 [thread overview]
Message-ID: <20150624092050.GA118757@orkuz.home> (raw)
In-Reply-To: <558951C0.3050806@suse.de>
On Tue, Jun 23, 2015 at 14:32:00 +0200, Andreas Färber wrote:
> Am 08.06.2015 um 22:18 schrieb Jiri Denemark:
> >> To help libvirt in the transition, a x86-cpu-model-dump script is provided,
> >> that will generate a config file that can be loaded using -readconfig, based on
> >> the -cpu and -machine options provided in the command-line.
> >
> > Thanks Eduardo, I never was a big fan of moving (or copying) all the CPU
> > configuration data to libvirt, but now I think it actually makes sense.
> > We already have a partial copy of CPU model definitions in libvirt
> > anyway, but as QEMU changes some CPU models in some machine types (and
> > libvirt does not do that) we have no real control over the guest CPU
> > configuration. While what we really want is full control to enforce
> > stable guest ABI.
>
> That sounds like FUD to me. Any concrete data points where QEMU does not
> have a stable ABI for x86 CPUs? That's what we have the pc*-x.y machines
> for.
QEMU provides stable ABI for x86 CPUs only if you use -cpu ...,enforce.
Without enforce the CPU may change everytime a domain is started or
migrated. A small example: let's say a CPU model called "Model" includes
feature "xyz"; when QEMU is started with -cpu Model (no enforce) on a
host which supports xyz, the guest OS will see a CPU with xyz, but when
you migrate it to a host which does not support xyz, QEMU will just
silently drop xyz. In other words, we need to use enforce to make sure
CPU ABI does not change.
But the problem is we can't use enforce because we don't know how a
specific CPU model looks like for a given machine type. Remember, while
libvirt allows users to explicitly ask for a specific CPU model and
features, it also has a mode when libvirt itself computes the right CPU
model and features. And this is impossible with enforce without us
knowing all details about CPU models.
So there are two possible ways to address this:
1. enhance QEMU to give us all we need
- either by providing commands that would do all the computations
(CPU model comparison, intersections or denominator, something
like -cpu best)
- or provide a way to probe for all (currently 700+) combinations of
a CPU model and a machine type without actually having to start
QEMU with each CPU and a machine type separately
2. manage CPU models in libvirt (aka -cpu custom)
During the past several years Eduardo tried to do (1) without getting
anywhere close to something that QEMU would be willing to accept. On the
other hand (2) is a pretty minimal change to QEMU and is more flexible
than (1) because it allows CPU model versions to be decoupled from
machine types (but this was already discussed a lot in the other emails
in this thread).
Jirka
next prev parent reply other threads:[~2015-06-24 9:20 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
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 [this message]
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=20150624092050.GA118757@orkuz.home \
--to=jdenemar@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=mimu@linux.vnet.ibm.com \
--cc=mst@redhat.com \
--cc=pbonzini@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).