Re: [PATCH V5 1/2] perf ignore LBR and extra_regs

Paolo Bonzini
2014-07-14T11:55:22Z

Il 10/07/2014 12:59, kan.liang@intel.com ha scritto:
> From: Kan Liang <kan.liang@intel.com>
>
> x86, perf: Protect LBR and extra_regs against KVM lying
>
> With -cpu host, KVM reports LBR and extra_regs support, if the host has support.
> When the guest perf driver tries to access LBR or extra_regs MSR,
> it #GPs all MSR accesses,since KVM doesn't handle LBR and extra_regs support.
> So check the related MSRs access right once at initialization time to avoid the error access at runtime.
>
> For reproducing the issue, please build the kernel with CONFIG_KVM_INTEL = y (for host kernel).
> And CONFIG_PARAVIRT = n and CONFIG_KVM_GUEST = n (for guest kernel).

I'm not sure this is a useful patch.

This is #GP'ing just because of a limitation in the PMU; just compile
the kernel with CONFIG_PARAVIRT, or split the "rdmsr is always
rdmsr_safe" behavior out of CONFIG_PARAVIRT and into a new Kconfig symbol.

In fact there's no reason why LBR cannot be virtualized (though it does
need support from the processor), and it may even be possible to support
OFFCORE_RSP_X in the KVM virtual PMU.

Paolo