]> xenbits.xensource.com Git - people/iwj/xen.git/commitdiff
x86/vpmu: Remove unnecessary call to do_interrupt()
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Tue, 24 Oct 2017 23:30:20 +0000 (19:30 -0400)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 27 Oct 2017 13:32:38 +0000 (14:32 +0100)
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 <boris.ostrovsky@oracle.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-acked-by: Julien Grall <julien.grall@linaro.org>
xen/arch/x86/cpu/vpmu.c

index fd2fcacc26c623bfc3e28a7962b78e5fbdd3ad4d..7baf4614beaf403952d0c7d123d259081b1b9f53 100644 (file)
@@ -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;