[PATCH v2 38/54] KVM: x86/pmu: Call perf_guest_enter() at PMU context switch

Mingwei Zhang
2024-05-06T05:31:40Z

From: Xiong Zhang <xiong.y.zhang@linux.intel.com>

perf subsystem should stop and restart all the perf events at the host
level when entering and leaving passthrough PMU respectively. So invoke
the perf API at PMU context switch functions.

Signed-off-by: Xiong Zhang <xiong.y.zhang@linux.intel.com>
Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
---
arch/x86/events/core.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index f5a043410614..6fe467bca809 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -705,6 +705,8 @@ void x86_perf_guest_enter(u32 guest_lvtpc)
{
lockdep_assert_irqs_disabled();

+ perf_guest_enter();
+
apic_write(APIC_LVTPC, APIC_DM_FIXED | KVM_GUEST_PMI_VECTOR |
(guest_lvtpc & APIC_LVT_MASKED));
}
@@ -715,6 +717,8 @@ void x86_perf_guest_exit(void)
lockdep_assert_irqs_disabled();

apic_write(APIC_LVTPC, APIC_DM_NMI);
+
+ perf_guest_exit();
}
EXPORT_SYMBOL_GPL(x86_perf_guest_exit);

--
2.45.0.rc1.225.g2a3ae87e7f-goog