Re: [PATCH] perf/x86/intel: Use rdmsrl_safe when initializing RAPL PMU.

Venkatesh Srinivas
2014-03-14T23:08:00Z

On Fri, Mar 14, 2014 at 10:57:58AM -0600, David Ahern wrote:
>On 3/14/14, 10:17 AM, Andi Kleen wrote:
>>>The Intel ISR section for RDMSR seems to say: "Specifying a reserved
>>>or unimplemented
>>>MSR address in ECX will also cause a general protection exception".
>>>
>>> From a guest's perspective, MSR_RAPL_POWER_UNIT is unimplemented; kvm matches
>>>this behavior.
>>
>>MSRs are model specific and defined per model number. If you report a model
>>number you're expected to implement the MSRs defined for that model number.
>>
>>AFAIK Xen just reports 0 for unknown MSRs (and I'm surprised KVM doesn't too)
>>
>>I would suggest to fix KVM.
>
>I believe ignore_msrs parameter to kvm handles that.
>
>David

Hi,

cc-ing the virtualization mailing list for more detail on the kvm
default for ignore_msrs (it defaults off).

1) Just returning 0 for unsupported MSRs is not workable -- 0 may be a
meaningful value for an MSR. RDMSR/WRMSR already have a mechanism
for out-of-band errors, #GP.

2) #GP has been KVM's default behavior for quite some time. Even if we
believe changing KVM's default is appropriate, Linux w/ the RAPL PMU
code enabled will fail to boot on existing KVM versions. W/ this
change, Linux will boot on prior KVM versions.

Thanks,
-- vs;