From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39550) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7QZ3-0000UJ-Du for qemu-devel@nongnu.org; Tue, 23 Jun 2015 11:56:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z7QYy-0001Nz-GQ for qemu-devel@nongnu.org; Tue, 23 Jun 2015 11:56:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40829) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7QYy-0001Nt-1N for qemu-devel@nongnu.org; Tue, 23 Jun 2015 11:56:40 -0400 Date: Tue, 23 Jun 2015 17:56:35 +0200 From: "Michael S. Tsirkin" Message-ID: <20150623175407-mutt-send-email-mst@redhat.com> References: <1433790460-30679-1-git-send-email-ehabkost@redhat.com> <20150608201835.GM3525@orkuz.home> <558951C0.3050806@suse.de> <20150623150828.GD3134@thinpad.lan.raisama.net> <20150623155100.GJ30318@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20150623155100.GJ30318@redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 0/2] target-i386: "custom" CPU model + script to dump existing CPU models List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Daniel P. Berrange" Cc: mimu@linux.vnet.ibm.com, qemu-devel@nongnu.org, Alexander Graf , borntraeger@de.ibm.com, Igor Mammedov , Paolo Bonzini , Jiri Denemark , rth@twiddle.net, Andreas =?iso-8859-1?Q?F=E4rber?= , Eduardo Habkost On Tue, Jun 23, 2015 at 04:51:00PM +0100, Daniel P. Berrange wrote: > On Tue, Jun 23, 2015 at 12:08:28PM -0300, Eduardo Habkost wrote: > > On Tue, Jun 23, 2015 at 02:32:00PM +0200, Andreas F=E4rber wrote: > > > Am 08.06.2015 um 22:18 schrieb Jiri Denemark: > > > >> To help libvirt in the transition, a x86-cpu-model-dump script i= s provided, > > > >> that will generate a config file that can be loaded using -readc= onfig, based on > > > >> the -cpu and -machine options provided in the command-line. > > > >=20 > > > > 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 libvir= t > > > > 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 enfor= ce > > > > stable guest ABI. > > >=20 > > > That sounds like FUD to me. Any concrete data points where QEMU doe= s not > > > have a stable ABI for x86 CPUs? That's what we have the pc*-x.y mac= hines > > > for. > >=20 > > What Jiri is saying that the CPUs change depending on -mmachine, not > > that the ABI is broken by a given machine. > >=20 > > The problem here is that libvirt needs to provide CPU models whose > > runnability does not depend on the machine-type. If users have a VM t= hat > > is running in a host and the VM machine-type changes, the VM should b= e > > still runnable in that host. QEMU doesn't provide that, our CPU model= s > > may change when we introduce new machine-types, so we are giving them= a > > mechanism that allows libvirt to implement the policy they need. >=20 > Expanding on that, but tieing the CPU model to the machine type, QEMU > has in turn effectively tied the machine type to the host hardware. > eg, switching to a newer machine type, may then prevent the guest > from being able to launch on the hardware that it was previously > able to run on, due to some new requirement of the CPU model associated > with the machine type. So why not keep machine type stable? > Libvirt wants the CPU models to be independant of the machine type, > so in general only the CPU model is dependant on hardware capabilities > and machine type is isolated from hardware. >=20 > Libvirt still intends to do versioning of the CPU models, but the > versioning will be separate from the versioning of the machine types, > and will be handled by libvirt itself. >=20 > This also allows us to get further towards our goal which is to have a > consistent representation of CPU models across all libvirt hypervisors. > eg the same libvirt CPU model and versions can be made consistent acros= s > kvm, xen, vmware, etc, as they're not longer changing behind our back > based on the qemu machine type. >=20 > Regards, > Daniel > --=20 > |: http://berrange.com -o- http://www.flickr.com/photos/dberran= ge/ :| > |: http://libvirt.org -o- http://virt-manager.= org :| > |: http://autobuild.org -o- http://search.cpan.org/~danbe= rr/ :| > |: http://entangle-photo.org -o- http://live.gnome.org/gtk-= vnc :|