From: "Andreas Färber" <afaerber@suse.de>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>,
Don@CloudSwitch.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 11/20] target-i386: do not set vendor_override in x86_cpuid_set_vendor()
Date: Wed, 19 Dec 2012 20:13:38 +0100 [thread overview]
Message-ID: <50D211E2.3040809@suse.de> (raw)
In-Reply-To: <20121219173809.GO5334@otherpad.lan.raisama.net>
Am 19.12.2012 18:38, schrieb Eduardo Habkost:
> On Mon, Dec 17, 2012 at 05:01:23PM +0100, Igor Mammedov wrote:
>> commit d480e1af which introduced vendor property was setting
>> env->cpuid_vendor_override = 1, which prevents using vendor property
>> on its own without triggering vendor override.
>> Fix it by removing setting cpuid_vendor_override in x86_cpuid_set_vendor()
>> to allow to use vendor property in other places that doesn't require
>> cpuid_vendor_override to be set to 1.
>
> By making "vendor" not force override, you are making "-cpu vendor=xxx"
> behave differently from setting "vendor" using all other interfaces
> (e.g. -device, -global, QMP commands).
>
> What about taking the opposite approach? Setting "vendor" could always
> force vendor override, but the code that initialize the defaults would
> take care of not overriding the vendor ID if unsafe. e.g.: it could just
> do this:
>
> if (!kvm_enabled() || def->vendor_override) {
> object_property_set_str(OBJECT(cpu), def->vendor, "vendor", errp);
> } /* else, leave the "vendor" property untouched" */
>
> (something equivalent could be done inside class_init() when we
> introduce subclasses)
>
> On all I cases I can think of somebody setting the "vendor" property
> (e.g. using -cpu, QMP, -device, or -global), it means they want vendor
> override (otherwise, what's the point of setting the property?). Setting
> vendor in no-override mode is the special case, not the other way
> around.
+1
I was thinking it might be possible to just reset vendor_override to
false when set internally via property - I didn't get to trying out
whether there is a second place affected though.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
next prev parent reply other threads:[~2012-12-19 19:13 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-17 16:01 [Qemu-devel] [PATCH 00/20 v2] x86 CPU cleanup (wave 2) Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 01/20] target-i386: filter out not TCG features if running without kvm at realize time Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 02/20] target-i386: sanitize AMD's ext2_features " Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 03/20] target-i386: explicitly set vendor for each built-in cpudef Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 04/20] target-i386: setting default 'vendor' is obsolete, remove it Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 05/20] target-i386: move setting defaults out of cpu_x86_parse_featurestr() Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 06/20] target-i386: move out CPU features initialization in separate func Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 07/20] target-i386: cpu_x86_register() consolidate freeing resources Igor Mammedov
2012-12-18 15:28 ` Eduardo Habkost
2012-12-18 16:15 ` Igor Mammedov
2012-12-18 16:30 ` [Qemu-devel] [PATCH 07/20 v2] " Igor Mammedov
2012-12-19 16:36 ` Eduardo Habkost
2012-12-19 16:49 ` Igor Mammedov
2012-12-19 17:04 ` Eduardo Habkost
2012-12-19 17:18 ` Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 08/20] target-i386: compile kvm only functions if CONFIG_KVM is defined Igor Mammedov
2012-12-19 16:42 ` Eduardo Habkost
2012-12-19 17:16 ` Igor Mammedov
2012-12-20 17:03 ` Eduardo Habkost
2012-12-17 16:01 ` [Qemu-devel] [PATCH 09/20] target-i386: move kvm_check_features_against_host() check to realize time Igor Mammedov
2012-12-19 16:49 ` Eduardo Habkost
2012-12-17 16:01 ` [Qemu-devel] [PATCH 10/20] target-i386: prepare cpu_x86_parse_featurestr() to return a set of key, value property pairs Igor Mammedov
2012-12-19 16:54 ` Eduardo Habkost
2012-12-19 20:18 ` Igor Mammedov
2012-12-20 14:10 ` Eduardo Habkost
2012-12-20 20:22 ` Igor Mammedov
2012-12-20 22:13 ` Eduardo Habkost
2012-12-21 0:56 ` Igor Mammedov
2012-12-21 13:50 ` Eduardo Habkost
2012-12-27 14:33 ` Igor Mammedov
2012-12-27 14:47 ` Eduardo Habkost
2012-12-17 16:01 ` [Qemu-devel] [PATCH 11/20] target-i386: do not set vendor_override in x86_cpuid_set_vendor() Igor Mammedov
2012-12-19 17:38 ` Eduardo Habkost
2012-12-19 19:13 ` Andreas Färber [this message]
2012-12-19 22:47 ` Igor Mammedov
2012-12-20 12:47 ` Eduardo Habkost
2012-12-20 0:02 ` [Qemu-devel] target-i386: Remove *vendor_override fields from x86_def_t and CPUX86State Igor Mammedov
2012-12-20 0:16 ` [Qemu-devel] [PATCH 11/20] target-i386: add x86cpu_vendor_words2str() Igor Mammedov
2012-12-20 19:54 ` Eduardo Habkost
2012-12-20 0:16 ` [Qemu-devel] [PATCH 12/20 v2] target-i386: replace uint32_t vendor fields by vendor string in x86_def_t Igor Mammedov
2012-12-20 19:59 ` Eduardo Habkost
2012-12-20 0:16 ` [Qemu-devel] [PATCH 13/20] target-i386: remove vendor_override field from CPUX86State Igor Mammedov
2012-12-20 12:48 ` Eduardo Habkost
2012-12-20 12:56 ` Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 12/20] target-i386: replace uint32_t vendor fields by vendor string in x86_def_t Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 13/20] target-i386: convert [cpuid_]vendor_override to bool Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 14/20] target-i386: set custom 'vendor' without intermediate x86_def_t Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 15/20] target-i386: set custom 'xlevel' " Igor Mammedov
2012-12-19 17:58 ` Eduardo Habkost
2012-12-19 20:45 ` Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 16/20] target-i386: set custom 'level' " Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 17/20] target-i386: set custom 'model-id' " Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 18/20] target-i386: set custom 'stepping' " Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 19/20] target-i386: set custom 'model' " Igor Mammedov
2012-12-17 16:01 ` [Qemu-devel] [PATCH 20/20] target-i386: set custom 'family' " Igor Mammedov
2012-12-17 20:43 ` [Qemu-devel] [PATCH 00/20 v2] x86 CPU cleanup (wave 2) Andreas Färber
2012-12-17 21:34 ` 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=50D211E2.3040809@suse.de \
--to=afaerber@suse.de \
--cc=Don@CloudSwitch.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@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 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.