From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51647) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsKWY-0008S5-EP for qemu-devel@nongnu.org; Sun, 15 Dec 2013 17:51:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VsKWS-0001Nz-JT for qemu-devel@nongnu.org; Sun, 15 Dec 2013 17:50:58 -0500 Received: from cantor2.suse.de ([195.135.220.15]:54655 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsKWS-0001Nv-D6 for qemu-devel@nongnu.org; Sun, 15 Dec 2013 17:50:52 -0500 Message-ID: <52AE3247.5000303@suse.de> Date: Sun, 15 Dec 2013 23:50:47 +0100 From: =?ISO-8859-15?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1385591336-2755-1-git-send-email-imammedo@redhat.com> In-Reply-To: <1385591336-2755-1-git-send-email-imammedo@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH qom-cpu 00/16 v10] target-i386: convert CPU features into properties List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: qemu-devel@nongnu.org, Anthony Liguori , Eduardo Habkost Am 27.11.2013 23:28, schrieb Igor Mammedov: > Igor Mammedov (16): > target-i386: cleanup 'foo' feature handling' > target-i386: cleanup 'foo=3Dval' feature handling Thanks, I've queued these on qom-cpu-next: https://github.com/afaerber/qemu-cpu/commits/qom-cpu-next > target-i386: cpu: convert 'level' to static property > target-i386: cpu: convert 'xlevel' to static property > target-i386: cpu: convert 'family' to static property > target-i386: cpu: convert 'model' to static property > target-i386: cpu: convert 'stepping' to static property > target-i386: cpu: convert 'vendor' to static property > target-i386: cpu: convert 'model-id' to static property > target-i386: cpu: convert 'tsc-frequency' to static property But I still don't see the utility of this conversion after all the discussions we've had... :( The below patches seem to only operate on CPUID bits, which get added as properties in the following patch. > target-i386: set [+-]feature using static properties > qdev: introduce qdev_prop_find_bit() > target-i386: use static properties in check_features_against_host() t= o > print CPUID feature names > target-i386: use static properties to list CPUID features I am reading too many occurrences of "static properties" above that should IMO just be "properties". You got permission to use a name-based scheme to iterate over feat-* properties, so why are you still iterating over static properties with a helper searching for offsets rather than QOM properties with feat- prefix? Either we need that scheme for automated processing as I understood you, then we should be consequent in using it, or we don't. And I would prefer to keep these mappings in x86 code rather than messing in generic device infrastructure and iterating over *all* properties in your qdev_prop_find_bit() and making generally available new QDEV_* macros QDEV_PROP_FOREACH() and QDEV_CLASS_FOREACH(). The utility of the feat- prefix AIUI is to go from +foo to feat-foo=3Don; going from bit position to name should work just as before and could even be consolidated into a single array by using dynamic properties. Am I the only one that finds the approach backwards? o.O Regards, Andreas > target-i386: remove unused *_feature_name arrays > target-i386: cpu: fix invalid use of error_is_set(errp) if errp =3D=3D > NULL --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg