[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 11/20] target-i386: do not set vendor_override i
From: |
Andreas Färber |
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 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 |
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
- Re: [Qemu-devel] [PATCH 09/20] target-i386: move kvm_check_features_against_host() check to realize time, (continued)
- [Qemu-devel] [PATCH 11/20] target-i386: do not set vendor_override in x86_cpuid_set_vendor(), Igor Mammedov, 2012/12/17
- [Qemu-devel] target-i386: Remove *vendor_override fields from x86_def_t and CPUX86State, Igor Mammedov, 2012/12/19
- [Qemu-devel] [PATCH 12/20 v2] target-i386: replace uint32_t vendor fields by vendor string in x86_def_t, Igor Mammedov, 2012/12/19
- Re: [Qemu-devel] [PATCH 12/20 v2] target-i386: replace uint32_t vendor fields by vendor string in x86_def_t, Eduardo Habkost, 2012/12/20
- [Qemu-devel] [PATCH 13/20] target-i386: remove vendor_override field from CPUX86State, Igor Mammedov, 2012/12/19
- Re: [Qemu-devel] [PATCH 13/20] target-i386: remove vendor_override field from CPUX86State, Eduardo Habkost, 2012/12/20
- Re: [Qemu-devel] [PATCH 13/20] target-i386: remove vendor_override field from CPUX86State, Igor Mammedov, 2012/12/20