From: Igor Mammedov <imammedo@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: qemu-devel@nongnu.org, Anthony Liguori <aliguori@amazon.com>,
Eduardo Habkost <ehabkost@redhat.com>
Subject: Re: [Qemu-devel] [PATCH qom-cpu 00/16 v10] target-i386: convert CPU features into properties
Date: Mon, 16 Dec 2013 16:01:05 +0100 [thread overview]
Message-ID: <20131216160105.1fad70a7@nial.usersys.redhat.com> (raw)
In-Reply-To: <52AE3247.5000303@suse.de>
On Sun, 15 Dec 2013 23:50:47 +0100
Andreas Färber <afaerber@suse.de> wrote:
> Am 27.11.2013 23:28, schrieb Igor Mammedov:
> > Igor Mammedov (16):
> > target-i386: cleanup 'foo' feature handling'
> > target-i386: cleanup 'foo=val' 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.
Above patches are there to simplify/unify current codebase. For example,
level & xlevel replace custom setters/getters with static property onliners.
The rest are making initfn more readable, not to mention that they
become visible in HMP along with the rest features wich is nice for
consistent behavior even is we do not care about HMP.
Otherwise there is not much difference between dynamic vs static anymore,
so this patches could be dropped, however with them ,I think,
code is a bit cleaner.
>
> > target-i386: set [+-]feature using static properties
> > qdev: introduce qdev_prop_find_bit()
> > target-i386: use static properties in check_features_against_host() to
> > 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
in current code base static properties are almost the same as dynamic ones,
it's just a more abbreviated version of dynamic ones with static defaults,
range checking, bit handling ...
So I don't see why more verbose dynamic properties SHOULD be used,
where the same code could be written more compact with static properties.
> 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().
this patch was, was on list for more than half a year without any
complaints/reviews. I don't have ICR for that time already, but if I recall
correctly something like this was suggested by Anthony to resolve problem
of mapping bit fields to names. If there is a more simple elegant way to do
it I'd like to hear more concrete suggestion(s) how it should be vs just
"messing" verdict with which I don't agree btw.
>
> The utility of the feat- prefix AIUI is to go from +foo to feat-foo=on;
> going from bit position to name should work just as before and could
> even be consolidated into a single array by using dynamic properties.
Could you elaborate more on what you are proposing please?
> 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 ==
> > NULL
>
next prev parent reply other threads:[~2013-12-16 15:01 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-27 22:28 [Qemu-devel] [PATCH qom-cpu 00/16 v10] target-i386: convert CPU features into properties Igor Mammedov
2013-11-27 22:28 ` [Qemu-devel] [PATCH 01/16] target-i386: cleanup 'foo' feature handling' Igor Mammedov
2013-11-27 22:28 ` [Qemu-devel] [PATCH 02/16] target-i386: cleanup 'foo=val' feature handling Igor Mammedov
2014-02-11 9:14 ` Eduardo Habkost
2014-02-11 14:28 ` Andreas Färber
2013-11-27 22:28 ` [Qemu-devel] [PATCH 03/16] target-i386: cpu: convert 'level' to static property Igor Mammedov
2014-02-11 9:14 ` Eduardo Habkost
2013-11-27 22:28 ` [Qemu-devel] [PATCH 04/16] target-i386: cpu: convert 'xlevel' " Igor Mammedov
2014-02-11 9:15 ` Eduardo Habkost
2013-11-27 22:28 ` [Qemu-devel] [PATCH 05/16] target-i386: cpu: convert 'family' " Igor Mammedov
2014-02-11 9:37 ` Eduardo Habkost
2013-11-27 22:28 ` [Qemu-devel] [PATCH 06/16] target-i386: cpu: convert 'model' " Igor Mammedov
2014-02-11 9:40 ` Eduardo Habkost
2013-11-27 22:28 ` [Qemu-devel] [PATCH 07/16] target-i386: cpu: convert 'stepping' " Igor Mammedov
2014-02-11 9:40 ` Eduardo Habkost
2013-11-27 22:28 ` [Qemu-devel] [PATCH 08/16] target-i386: cpu: convert 'vendor' " Igor Mammedov
2014-02-11 11:31 ` Eduardo Habkost
2013-11-27 22:28 ` [Qemu-devel] [PATCH 09/16] target-i386: cpu: convert 'model-id' " Igor Mammedov
2014-02-11 11:36 ` Eduardo Habkost
2013-11-27 22:28 ` [Qemu-devel] [PATCH 10/16] target-i386: cpu: convert 'tsc-frequency' " Igor Mammedov
2014-02-11 11:36 ` Eduardo Habkost
2013-11-27 22:28 ` [Qemu-devel] [PATCH 11/16] target-i386: set [+-]feature using static properties Igor Mammedov
2013-11-27 22:28 ` [Qemu-devel] [PATCH 12/16] qdev: introduce qdev_prop_find_bit() Igor Mammedov
2013-11-27 22:28 ` [Qemu-devel] [PATCH 13/16] target-i386: use static properties in check_features_against_host() to print CPUID feature names Igor Mammedov
2013-11-27 22:28 ` [Qemu-devel] [PATCH 14/16] target-i386: use static properties to list CPUID features Igor Mammedov
2013-11-27 22:28 ` [Qemu-devel] [PATCH 15/16] target-i386: remove unused *_feature_name arrays Igor Mammedov
2013-11-27 22:28 ` [Qemu-devel] [PATCH 16/16] target-i386: cpu: fix invalid use of error_is_set(errp) if errp == NULL Igor Mammedov
2013-12-15 22:50 ` [Qemu-devel] [PATCH qom-cpu 00/16 v10] target-i386: convert CPU features into properties Andreas Färber
2013-12-16 15:01 ` Igor Mammedov [this message]
2013-12-16 18:26 ` Eduardo Habkost
2013-12-17 13:01 ` Igor Mammedov
2014-01-07 8:41 ` Igor Mammedov
2014-02-05 14:40 ` Igor Mammedov
2014-02-05 16:14 ` Andreas Färber
2014-02-05 16:52 ` Igor Mammedov
2014-02-06 15:19 ` Igor Mammedov
2014-02-06 15:51 ` Andreas Färber
2014-02-06 16:16 ` [Qemu-devel] CPU models and feature probing (was Re: [PATCH qom-cpu 00/16 v10] target-i386: convert CPU) " Eduardo Habkost
2014-02-06 16:57 ` Andreas Färber
2014-02-07 10:16 ` Eduardo Habkost
2014-02-07 10:55 ` Paolo Bonzini
2014-02-11 11:54 ` Eduardo Habkost
2014-02-11 14:31 ` Anthony Liguori
2014-02-11 15:25 ` Eduardo Habkost
2014-02-11 15:58 ` Anthony Liguori
2014-02-11 16:43 ` Eduardo Habkost
2014-02-11 16:45 ` Paolo Bonzini
2014-02-11 16:55 ` Andreas Färber
2014-02-11 18:57 ` Anthony Liguori
2014-02-11 21:38 ` Paolo Bonzini
2014-02-07 10:37 ` Eduardo Habkost
2014-02-11 17:17 ` [Qemu-devel] [PATCH qom-cpu 00/16 v10] target-i386: convert CPU " Igor Mammedov
2014-03-05 16:53 ` Igor Mammedov
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=20131216160105.1fad70a7@nial.usersys.redhat.com \
--to=imammedo@redhat.com \
--cc=afaerber@suse.de \
--cc=aliguori@amazon.com \
--cc=ehabkost@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).