From: Paolo Bonzini <pbonzini@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Liran Alon <liran.alon@oracle.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/7] target/i386: introduce generic feature dependency mechanism
Date: Sat, 6 Jul 2019 00:07:50 +0200 [thread overview]
Message-ID: <90631bfa-80a6-db32-15fe-82a6765b5f1e@redhat.com> (raw)
In-Reply-To: <20190705214129.GH5198@habkost.net>
On 05/07/19 23:41, Eduardo Habkost wrote:
>>>> + for (i = 0; i < ARRAY_SIZE(feature_dependencies); i++) {
>>>> + FeatureDep *d = &feature_dependencies[i];
>>>> + if ((env->user_features[d->from] & d->from_flag) &&
>>>> + !(env->features[d->from] & d->from_flag)) {
>>> Why does it matter if the feature was cleared explicitly by the
>>> user?
>> Because the feature set of named CPU models should be internally
>> consistent. I thought of this mechanism as a quick "clean up user's
>> choices" pass to avoid having to remember a multitude of VMX features,
>> for example it makes "-cpu host,-rdtscp" just work.
> If named CPU models are already consistent, ignoring
> user_features shouldn't make a difference, right? It would also
> be a useful mechanism to detect inconsistencies in internal CPU
> model definitions.
Ok, I can drop that check.
>> It has to be done before expansion, so that env->user_features is set
>> properly before -cpu host is expanded.
>
> I don't get it. It looks like you only need env->user_features
> to be set above because you are handling dependencies before
> cpu->max_features is handled.
>
> If you handle dependencies at x86_cpu_filter_features() instead
> (after cpu->max_features was already handled), you don't even
> need to worry about setting user_features.
I think you're right, but on the other hand setting user_features is
cleaner. Effectively the dependent features have been disabled because
of something the user told QEMU. So on one hand I can move the loop to
x86_cpu_filter_features, on the other hand I'd prefer to set
user_features and then it feels more like expansion (e.g. of vmx-ept=off
to vmx-ept=off,vmx-unrestricted-guest=off) than filtering.
Paolo
next prev parent reply other threads:[~2019-07-05 22:08 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-02 15:01 [Qemu-devel] [RFC PATCH 0/7] target/i386: support VMX features in "-cpu" Paolo Bonzini
2019-07-02 15:01 ` [Qemu-devel] [PATCH 1/7] target/i386: handle filtered_features in a new function mark_unavailable_features Paolo Bonzini
2019-07-05 20:37 ` Eduardo Habkost
2019-07-05 21:32 ` Paolo Bonzini
2019-07-05 21:44 ` Eduardo Habkost
2019-07-05 22:07 ` Paolo Bonzini
2019-07-05 22:16 ` Eduardo Habkost
2019-07-02 15:01 ` [Qemu-devel] [PATCH 2/7] target/i386: introduce generic feature dependency mechanism Paolo Bonzini
2019-07-05 20:52 ` Eduardo Habkost
2019-07-05 21:12 ` Paolo Bonzini
2019-07-05 21:41 ` Eduardo Habkost
2019-07-05 22:07 ` Paolo Bonzini [this message]
2019-07-08 21:45 ` Eduardo Habkost
2019-07-02 15:01 ` [Qemu-devel] [PATCH 3/7] target/i386: expand feature words to 64 bits Paolo Bonzini
2019-07-02 15:01 ` [Qemu-devel] [PATCH 4/7] target/i386: add VMX definitions Paolo Bonzini
2019-07-02 15:01 ` [Qemu-devel] [PATCH 5/7] vmxcap: correct the name of the variables Paolo Bonzini
2019-07-02 15:01 ` [Qemu-devel] [PATCH 6/7] target/i386: add VMX features Paolo Bonzini
2019-07-05 21:22 ` Eduardo Habkost
2019-07-05 22:12 ` Paolo Bonzini
2019-07-05 22:33 ` Eduardo Habkost
2019-07-05 22:42 ` Paolo Bonzini
2019-07-05 22:48 ` Eduardo Habkost
2019-07-02 15:01 ` [Qemu-devel] [PATCH 7/7] target/i386: work around KVM_GET_MSRS bug for secondary execution controls Paolo Bonzini
2019-07-02 20:46 ` [Qemu-devel] [RFC PATCH 0/7] target/i386: support VMX features in "-cpu" no-reply
2019-07-02 21:13 ` no-reply
2019-07-02 21:38 ` [Qemu-devel] No symbols in LeakSanitizer output (was Re: [RFC PATCH 0/7] target/i386: support VMX features in "-cpu") Eduardo Habkost
2019-07-02 23:05 ` Peter Maydell
2019-07-05 10:19 ` Paolo Bonzini
-- strict thread matches above, loose matches on Subject: below --
2019-09-17 10:34 [Qemu-devel] [PATCH v2 0/7] target/i386: support VMX features in "-cpu" Paolo Bonzini
2019-09-17 10:34 ` [Qemu-devel] [PATCH 2/7] target/i386: introduce generic feature dependency mechanism Paolo Bonzini
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=90631bfa-80a6-db32-15fe-82a6765b5f1e@redhat.com \
--to=pbonzini@redhat.com \
--cc=ehabkost@redhat.com \
--cc=liran.alon@oracle.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 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.