|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 19/30] x86/cpu: Rework Intel masking/faulting setup
On 17/02/16 07:57, Jan Beulich wrote:
>
>> +/* Indicies of the masking MSRs, or 0 if unavailable. */
>> +static unsigned int __read_mostly msr_basic, msr_ext, msr_xsave;
> I think this way __read_mostly applies only to msr_basic, which I
> don't think is what you want. Also I think you mean "indices" or
> "indexes".
"Indices" is what I meant.
>
>> +static void __init probe_masking_msrs(void)
>> +{
>> + const struct cpuinfo_x86 *c = &boot_cpu_data;
>> + unsigned int exp_msr_basic = 0, exp_msr_ext = 0, exp_msr_xsave = 0;
>>
>> /* Only family 6 supports this feature. */
>> - if (c->x86 != 6) {
>> - printk("No CPUID feature masking support available\n");
>> + if (c->x86 != 6)
>> return;
>> - }
>>
>> switch (c->x86_model) {
>> case 0x17: /* Yorkfield, Wolfdale, Penryn, Harpertown(DP) */
>> case 0x1d: /* Dunnington(MP) */
>> - msr_basic = MSR_INTEL_MASK_V1_CPUID1;
>> + exp_msr_basic = msr_basic = MSR_INTEL_MASK_V1_CPUID1;
>> break;
>>
>> case 0x1a: /* Bloomfield, Nehalem-EP(Gainestown) */
>> @@ -88,71 +100,126 @@ static void set_cpuidmask(const struct cpuinfo_x86 *c)
>> case 0x2c: /* Gulftown, Westmere-EP */
>> case 0x2e: /* Nehalem-EX(Beckton) */
>> case 0x2f: /* Westmere-EX */
>> - msr_basic = MSR_INTEL_MASK_V2_CPUID1;
>> - msr_ext = MSR_INTEL_MASK_V2_CPUID80000001;
>> + exp_msr_basic = msr_basic = MSR_INTEL_MASK_V2_CPUID1;
>> + exp_msr_ext = msr_ext = MSR_INTEL_MASK_V2_CPUID80000001;
>> break;
>>
>> case 0x2a: /* SandyBridge */
>> case 0x2d: /* SandyBridge-E, SandyBridge-EN, SandyBridge-EP */
>> - msr_basic = MSR_INTEL_MASK_V3_CPUID1;
>> - msr_ext = MSR_INTEL_MASK_V3_CPUID80000001;
>> - msr_xsave = MSR_INTEL_MASK_V3_CPUIDD_01;
>> + exp_msr_basic = msr_basic = MSR_INTEL_MASK_V3_CPUID1;
>> + exp_msr_ext = msr_ext = MSR_INTEL_MASK_V3_CPUID80000001;
>> + exp_msr_xsave = msr_xsave = MSR_INTEL_MASK_V3_CPUIDD_01;
>> break;
>> }
> Instead of all these changes, and instead of the variable needing
> initializers, you could simply initialize all three ext_msr_* right after
> the switch().
That would certainly be neater.
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |