Messages in this thread | | | Date | Mon, 14 Jul 2014 14:09:22 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH V5 1/2] perf ignore LBR and extra_regs |
| |
On Mon, Jul 14, 2014 at 01:55:03PM +0200, Paolo Bonzini wrote: > 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
How's that going to help? If you run kvm -host the VM is lying through its teeth is the kernel is going to assume all those MSRs present, PARAVIRT isn't going to help with this.
> , or split the "rdmsr is always rdmsr_safe" > behavior out of CONFIG_PARAVIRT and into a new Kconfig symbol.
That's not useful either, because non of these code-paths are going to check the return value.
> 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.
But its not, so something needs to be done, right? [unhandled content-type:application/pgp-signature] | |