All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@amd.com>
To: Avi Kivity <avi@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH][STABLE] fix CPUID vendor override
Date: Sun, 11 Apr 2010 21:49:40 +0200	[thread overview]
Message-ID: <4BC227D4.9060700@amd.com> (raw)
In-Reply-To: <4BC2238C.2070009@redhat.com>

Avi Kivity wrote:
> On 04/11/2010 10:21 PM, Andre Przywara wrote:
>> the meaning of vendor_override is actually the opposite of how it
>> is currently used :-(
>> Fix it to allow KVM to export the non-native CPUID vendor if
>> explicitly requested by the user.
>>
>> Signed-off-by: Andre Przywara<andre.przywara@amd.com>
>> ---
>>   target-i386/helper.c |    2 +-
>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> I will send a refactoring patch including this fix for git HEAD later.
>>
>> Regards,
>> Andre.
>>
>> diff --git a/target-i386/helper.c b/target-i386/helper.c
>> index 9d7fec3..c17adc1 100644
>> --- a/target-i386/helper.c
>> +++ b/target-i386/helper.c
>> @@ -1655,7 +1655,7 @@ static void get_cpuid_vendor(CPUX86State *env, 
>> uint32_t *ebx,
>>        * this if you want to use KVM's sysenter/syscall emulation
>>        * in compatibility mode and when doing cross vendor migration
>>        */
>> -    if (kvm_enabled()&&  env->cpuid_vendor_override) {
>> +    if (kvm_enabled()&&  ! env->cpuid_vendor_override) {
>>           host_cpuid(0, 0, NULL, ebx, ecx, edx);
>>       }
>>   }
>>    
> 
> Why is the original code wrong?  I would say vendor_override means 
> overriding the qemu-picked vendor ID in favour of the host cpuid.
I meant it to mean: override the automatically chosen vendor ID (which 
is the host ID in case of KVM). I think the reason for KVM to use the 
host ID is valid, so I wanted to have an explicit override only if the 
user says so.
If you look at the code, you will see that it is initialized to 0 and 
only set to 1 if one specifies an explicit vendor ID on the command line.
Honestly I cannot say how this bug slipped through, I can only guess 
that I tricked myself while making the final version of the patch 
(lost-in-branches(TM))

Regards,
Andre.

-- 
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany
Tel: +49 351 488-3567-12

  reply	other threads:[~2010-04-11 20:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-11 19:21 [Qemu-devel] [PATCH][STABLE] fix CPUID vendor override Andre Przywara
2010-04-11 19:29 ` [Qemu-devel] " Avi Kivity
2010-04-11 19:42   ` Andre Przywara
2010-04-11 19:31 ` Avi Kivity
2010-04-11 19:49   ` Andre Przywara [this message]
2010-04-18 21:42     ` Aurelien Jarno
2010-04-18 22:48       ` Andre Przywara

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=4BC227D4.9060700@amd.com \
    --to=andre.przywara@amd.com \
    --cc=avi@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.