Re: [PATCH 1/2] KVM: x86/pmu: Reset perf_capabilities in vcpu to 0 if PDCM is disabled

From: Sean Christopherson
Date: Fri Jan 26 2024 - 14:34:44 EST


On Fri, Jan 26, 2024, Mingwei Zhang wrote:
> +Frederick Mayle +Steven Moreland
>
> On Fri, Jan 26, 2024 at 10:33 AM Sean Christopherson <seanjc@xxxxxxxxxx> wrote:
> >
> > On Thu, Jan 25, 2024, Mingwei Zhang wrote:
> > > On Wed, Jan 24, 2024, Sean Christopherson wrote:
> > > > On Wed, Jan 24, 2024, Mingwei Zhang wrote:
> > > > > I think this makes a lot of confusions on migration where VMM on the source
> > > > > believes that a non-zero value from KVM_GET_MSRS is valid and the VMM on the
> > > > > target will find it not true.
> > > >
> > > > Yes, but seeing a non-zero value is a KVM bug that should be fixed.
> > > >
> > > How about adding an entry in vmx_get_msr() for
> > > MSR_IA32_PERF_CAPABILITIES and check pmu_version? This basically pairs
> > > with the implementation in vmx_set_msr() for MSR_IA32_PERF_CAPABILITIES.
> > > Doing so allows KVM_GET_MSRS return 0 for the MSR instead of returning
> > > the initial permitted value.
> >
> > Hrm, I don't hate it as a stopgap. But if we are the only people that are affected,
> > because again I'm pretty sure QEMU is fine, I would rather we just fix things in
> > our VMM and/or internal kernel.
>
> It is not just QEMU. crossvm is another open source VMM that suffers
> from this one.

Does CrosVM support migration or some other form of save/restore (RR?)? And if
so, does CrosVM do that in conjunction with hiding the vPMU from the guest?

Because if not, then I think we can squeak by.