qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for 1.1-rc1] mce_init should be called after par


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH for 1.1-rc1] mce_init should be called after parsing cpu_model
Date: Thu, 10 May 2012 00:31:34 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120421 Thunderbird/12.0

Am 09.05.2012 21:49, schrieb Igor Mammedov:
> ----- Original Message -----
>> From: "Andreas Färber" <address@hidden>
>> Am 09.05.2012 21:01, schrieb Igor Mammedov:
>>> diff --git a/target-i386/cpu.c b/target-i386/cpu.c
>>> index 65d9af6..5d11e7b 100644
>>> --- a/target-i386/cpu.c
>>> +++ b/target-i386/cpu.c
>>> @@ -1153,6 +1153,22 @@ void x86_cpu_list(FILE *f, fprintf_function
>>> cpu_fprintf, const char *optarg)
>>>      }
>>>  }
>>>  
>>> +static void mce_init(X86CPU *cpu)
>>> +{
>>> +    CPUX86State *cenv = &cpu->env;
>>> +    unsigned int bank;
>>> +
>>> +    if (((cenv->cpuid_version >> 8) & 0xf) >= 6
>>> +        && (cenv->cpuid_features & (CPUID_MCE | CPUID_MCA)) ==
>>> +            (CPUID_MCE | CPUID_MCA)) {
>>> +        cenv->mcg_cap = MCE_CAP_DEF | MCE_BANKS_DEF;
>>> +        cenv->mcg_ctl = ~(uint64_t)0;
>>> +        for (bank = 0; bank < MCE_BANKS_DEF; bank++) {
>>> +            cenv->mce_banks[bank * 4] = ~(uint64_t)0;
>>> +        }
>>> +    }
>>> +}
>>> +
>>>  int cpu_x86_register(X86CPU *cpu, const char *cpu_model)
>>>  {
>>>      CPUX86State *env = &cpu->env;
>>> @@ -1204,6 +1220,8 @@ int cpu_x86_register(X86CPU *cpu, const char
>>> *cpu_model)
>>>          error_free(error);
>>>          return -1;
>>>      }
>>> +
>>> +    mce_init(cpu);
>>
>> This would be okay as a short-term rc1 fix.
> 
> Exactly, it is intended as short term fix for 1.1, just noticed that
> mce_init was moved before cpuid_* are initialized.

No doubt should that be fixed for 1.1. Hearing that 1.1-rc1 is already
well under way and in testing, it seems we can give this some more
thought and review.

I've posted an alternative patch that we could merge for 1.1-rc2. As
previously suggested for target-sh4 (where it didn't matter), it avoids
a dependency on Paolo's series, which we will definitely not get during
Hard Freeze, while remaining compatible to it for future assignment in
class_init.

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]