All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@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>,
	Jiri Denemark <jdenemar@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: Tue, 23 Jun 2015 18:27:50 +0100	[thread overview]
Message-ID: <20150623172750.GP30318@redhat.com> (raw)
In-Reply-To: <558994CE.9050001@suse.de>

On Tue, Jun 23, 2015 at 07:18:06PM +0200, Andreas Färber wrote:
> Am 23.06.2015 um 19:08 schrieb Eduardo Habkost:
> > On Tue, Jun 23, 2015 at 06:44:57PM +0200, Andreas Färber wrote:
> >> Am 23.06.2015 um 18:38 schrieb Eduardo Habkost:
> >>> On Tue, Jun 23, 2015 at 06:33:05PM +0200, Michael S. Tsirkin wrote:
> >>>> On Tue, Jun 23, 2015 at 05:25:55PM +0100, Daniel P. Berrange wrote:
> >>>>> Whether QEMU changed the CPU for existing machines, or only for new
> >>>>> machines is actually not the core problem. Even if we only changed
> >>>>> the CPU in new machines that would still be an unsatisfactory situation
> >>>>> because we want to be able to be able to access different versions of
> >>>>> the CPU without the machine type changing, and access different versions
> >>>>> of the machine type, without the CPU changing. IOW it is the fact that the
> >>>>> changes in CPU are tied to changes in machine type that is the core
> >>>>> problem.
> >>>>
> >>>> But that's because we are fixing bugs.  If CPU X used to work on
> >>>> hardware Y in machine type A and stopped in machine type B, this is
> >>>> because we have determined that it's the right thing to do for the
> >>>> guests and the users. We don't break stuff just for fun.
> >>>> Why do you want to bring back the bugs we fixed?
> >>>
> >>> I didn't take the time to count them, but I bet most of the commits I
> >>> listed on my previous e-mail message are not bug fixes, but new
> >>> features.
> >>
> >> Huh? Of course the latest machine model get new features. The point is
> >> that the previous ones don't and that's what we are providing them for -
> >> libvirt is expected to choose one machine and the contract with QEMU is
> >> that for that machine the CPU does *not* grow new features, and we're
> >> going at great lengths to achieve that. So this thread feels more and
> >> more weird...
> > 
> > We are not talking about changes to existing machines. We are talking
> > about having changes introduced in new machines (the one we did on
> > purpose) affecting the runnability of the VM.
> 
> You are talking abstract!
> 
> 
> Example 1:
> 
> Point A: Machine pc-i440fx-2.3 exists
> 
> Runs or runs not.
> 
> Point B: Machine pc-i440fx-2.3 still exists
> 
> Still runs or runs not due to guest ABI stability rules.
> 
> 
> Example 2:
> 
> Point A: pc-i440fx-2.4 does not exist in 2.3
> 
> Does not run becomes it doesn't exist.
> 
> Point B: New pc-i440fx-2.4
> 
> Runs or does not run, and if so has more features than pc-i440fx-2.3.
> 
> There is no runnability problem - either it runs or it doesn't, but
> there's no change over time.
> 
> This is what the machine -x.y versioning is all about.

Consider a host currently running QEMU 2.3 with machine type
pc-i440fx-2.3 used with SandyBridge.

Now consider the def of SandyBridge was buggy and so in QEMU
2.4 we add the missing CPU feature flag 'wizz', and only
enable that new feature flag with pc-i440fx-2.4

Now consider there was a bug in the virtio-scsi driver that
we also fixed in QEMU 2.4 and thus pc-i440fx-2.4 includes
that fix.

Updating from pc-i440fx-2.3 to pc-i440fx-2.4 has a dependancy
on the host CPU including the 'wizz' flag that was added. This
new CPU feature can prevent the user from using the new machine
type to get the virtio-scsi bug fix.

Separately versioning CPU models still lets us preserve a stable
guest ABI by default, but allows more flexibility when choosing
to opt out of the ABI for a particular upgrade.

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 :|

  reply	other threads:[~2015-06-23 17:28 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 [this message]
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
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=20150623172750.GP30318@redhat.com \
    --to=berrange@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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.