From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58545) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UXE4G-000103-7i for qemu-devel@nongnu.org; Tue, 30 Apr 2013 13:10:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UXDyd-0005TC-Ux for qemu-devel@nongnu.org; Tue, 30 Apr 2013 13:04:56 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59754) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UXDyd-0005Sz-Im for qemu-devel@nongnu.org; Tue, 30 Apr 2013 13:04:27 -0400 Date: Tue, 30 Apr 2013 19:04:23 +0200 From: Igor Mammedov Message-ID: <20130430190423.3b0be80d@nial.usersys.redhat.com> In-Reply-To: <20130426190115.GA2900@otherpad.lan.raisama.net> References: <1366915386-14728-1-git-send-email-ehabkost@redhat.com> <1366915386-14728-8-git-send-email-ehabkost@redhat.com> <20130426171029.3e159116@thinkpad> <20130426153108.GX2900@otherpad.lan.raisama.net> <517A9E3E.2060901@suse.de> <20130426173915.20d02c7d@thinkpad> <20130426173040.GK11821@otherpad.lan.raisama.net> <20130426194110.43ff3a80@thinkpad> <20130426190115.GA2900@otherpad.lan.raisama.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC 7/7] target-i386: Disable direct passthrough of PMU CPUID leaf by default List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost Cc: Andreas =?ISO-8859-1?B?RuRyYmVy?= , Gleb Natapov , qemu-devel@nongnu.org On Fri, 26 Apr 2013 16:01:15 -0300 Eduardo Habkost wrote: > On Fri, Apr 26, 2013 at 07:41:10PM +0200, Igor Mammedov wrote: > > On Fri, 26 Apr 2013 14:30:40 -0300 > > Eduardo Habkost wrote: > >=20 > > > On Fri, Apr 26, 2013 at 05:39:15PM +0200, Igor Mammedov wrote: > > > > On Fri, 26 Apr 2013 17:33:18 +0200 > > > > Andreas F=E4rber wrote: > > > >=20 > > > > > Am 26.04.2013 17:31, schrieb Eduardo Habkost: > > > > > > On Fri, Apr 26, 2013 at 05:10:29PM +0200, Igor Mammedov wrote: > > > > > >> On Thu, 25 Apr 2013 15:43:06 -0300 > > > > > >> Eduardo Habkost wrote: > > > > > >> > > > > > >>> The current code handling the CPUID 0xA leaf simply forwards = all data > > > > > >>> from GET_SUPPORTED_CPUID directly to the guest, breaking migr= ation > > > > > >>> between hosts with different number of PMU counters. > > > > > >>> > > > > > >>> This patch disables this behavior, except on older machine-ty= pes (for > > > > > >>> compatibility) and on the "host" CPU model. > > > > > >> Please, make it static property and use compat properties. > > > > > >> Result will be simpler and much less will have to be redone/d= iscarded after > > > > > >> converting to the rest to properties and sub-classes. > > > > > >=20 > > > > > > I was going to say that static properties were too much work to= be done > > > > > > in time for 1.5, but you are right: in this specific case addin= g a > > > > > > static property for the cpuid_pmu_passthrough field looks very = easy. I > > > > > > will give it a try. > > > > >=20 > > > > > I am hoping to get as initial set (though not all) of the static > > > > > properties still into 1.5. Using them to fix CPUID bugs can then = be done > > > > > during Hard Freeze. :) > > > > patch "[PATCH 02/10] target-i386: cpu: convert existing dynamic pro= perties > > > > into static properties" should be enough for using model,level comp= at > > > > properties. > > >=20 > > > ...except that we don't have X86CPU model subclasses yet, so we can't > > > set model-specific compat properties using compat_props. > > X86CPU could serve here >=20 > How? >=20 > If we need to set model=3D8 only on the "486" CPU model, how would we do > that in the compat_props table without subclasses? for model, it would be its possible with custom setter, might be preferred = way since it's local to cpu.c, and could be easily replaced with with one-liner= once sub-classes are in tree. >=20 > >=20 > > >=20 > > > Maybe we can make compat_props work for pmu-passthrough, but it may be > > > not completely straightforward because I would like to keep it enabled > > > by default on -cpu host. > > Maybe for 'host' hack realize() to override default, will do and later = we > > can move it to host_subclass. >=20 > Yes, it's doable. And I don't think we even need to hack methods, we > just need a x86_def_t field that indicates that this is a model that > overrides the default (and that field would be true only for "host"). Extended x86_def_t might be harder to handle when switching to sub-classes, although it's hard to say without comparing patches for both ways. >=20 > But I still don't see how it would be possible to use compat_props for > the 486 model=3D8 fix or for the n270 movbe fix. >=20 It's impossible to implement "n270 movbe" fixup with compat props currentl= y, so 5/7 + 1/7 looks ok. We can drop them once features converted to static p= roperties + sub-classes.