Re: [PATCH v4 05/10] KVM/x86: expose MSR_IA32_PERF_CAPABILITIES to the guest

From: Wei Wang
Date: Mon Jan 07 2019 - 04:09:50 EST


On 01/03/2019 11:25 PM, Jim Mattson wrote:
On Wed, Jan 2, 2019 at 11:55 PM Wei Wang <wei.w.wang@xxxxxxxxx> wrote:

Right, thanks. Probably better to change it to below:

msr_info->data = 0;
data = native_read_msr(MSR_IA32_PERF_CAPABILITIES);
if (vcpu->kvm->arch.lbr_in_guest)
msr_info->data |= (data & X86_PERF_CAP_MASK_LBR_FMT);

This still breaks backwards compatibility. Returning 0 and raising #GP
are not the same.

I'm not sure about raising GP# in this case.

This PERF_CAP msr contains more things than the lbr format.
For example, a guest with lbr=false option could read it to get PEBS_FMT,
which is PERF_CAP[11:8]. We should offer those bits in this case.

When lbr=false, the lbr feature is not usable by the guest,
so I think whatever value (0 or other value) of the LBR_FMT bits that
we give to the guest might not be important.

Best,
Wei