Messages in this thread | | | Date | Tue, 08 Jan 2019 15:53:49 +0800 | From | Wei Wang <> | Subject | Re: [PATCH v4 05/10] KVM/x86: expose MSR_IA32_PERF_CAPABILITIES to the guest |
| |
On 01/08/2019 02:48 AM, Jim Mattson wrote: > On Mon, Jan 7, 2019 at 10:20 AM Andi Kleen <ak@linux.intel.com> wrote: >>> The issue is compatibility. Prior to your change, reading this MSR >>> from a VM would raise #GP. After your change, it won't. That means >>> that if you have a VM migrating between hosts with kernel versions >>> before and after this change, the results will be inconsistent. In the >> No it will not be. All Linux kernel uses of this MSR are guarded >> by a CPUID check. > Linux usage is irrelevant to the architected behavior of the virtual > CPU. According to volume 4 of the SDM, this MSR is only supported when > CPUID.01H:ECX.PDCM [bit 15] is set. Therefore, kvm should raise #GP > whenever a guest tries to read this MSR and the guest's > CPUID.01H:ECX.PDCM [bit 15] is clear. >
Probably one more check would be better:
if (!boot_cpu_has(X86_FEATURE_PDCM) || !guest_cpuid_has(vcpu, X86_FEATURE_PDCM)) return 1;
(host isn't expected to read this MSR when PDCM is not supported by the guest, so don't have "!msr_info->host_initiate" added to above)
Best, Wei
| |