From: Boris Ostrovsky Date: Tue, 24 Oct 2017 23:30:20 +0000 (-0400) Subject: x86/vpmu: Remove unnecessary call to do_interrupt() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=5e2bfc23f7c9a60c01a02c619e1f3d7456ce0e93;p=people%2Fiwj%2Fxen.git x86/vpmu: Remove unnecessary call to do_interrupt() This call was left during PVHv1 removal (commit 33e5c32559e1 ("x86: remove PVHv1 code")): - if ( is_pvh_vcpu(sampling) && - !(vpmu_mode & XENPMU_MODE_ALL) && + if ( !(vpmu_mode & XENPMU_MODE_ALL) && !vpmu->arch_vpmu_ops->do_interrupt(regs) ) return; As result of this extra call VPMU no longer works for PV guests on Intel because we effectively lose value of MSR_CORE_PERF_GLOBAL_STATUS. Signed-off-by: Boris Ostrovsky Reviewed-by: Andrew Cooper Release-acked-by: Julien Grall --- diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c index fd2fcacc26..7baf4614be 100644 --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -227,10 +227,6 @@ void vpmu_do_interrupt(struct cpu_user_regs *regs) if ( !vpmu->xenpmu_data ) return; - if ( !(vpmu_mode & XENPMU_MODE_ALL) && - !vpmu->arch_vpmu_ops->do_interrupt(regs) ) - return; - if ( vpmu_is_set(vpmu, VPMU_CACHED) ) return;