[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH V7 01/18] perf/core: Use static_call to optimize perf_guest_info_callbacks
 
- To: Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Zhu Lingshan <lingshan.zhu@xxxxxxxxx>
 
- From: Zhu Lingshan <lingshan.zhu@xxxxxxxxxxxxxxx>
 
- Date: Thu, 8 Jul 2021 16:53:26 +0800
 
- Cc: pbonzini@xxxxxxxxxx, bp@xxxxxxxxx, seanjc@xxxxxxxxxx, vkuznets@xxxxxxxxxx, wanpengli@xxxxxxxxxxx, jmattson@xxxxxxxxxx, joro@xxxxxxxxxx, weijiang.yang@xxxxxxxxx, kan.liang@xxxxxxxxxxxxxxx, ak@xxxxxxxxxxxxxxx, wei.w.wang@xxxxxxxxx, eranian@xxxxxxxxxx, liuxiangdong5@xxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, x86@xxxxxxxxxx, kvm@xxxxxxxxxxxxxxx, like.xu.linux@xxxxxxxxx, Like Xu <like.xu@xxxxxxxxxxxxxxx>, Will Deacon <will@xxxxxxxxxx>, Marc Zyngier <maz@xxxxxxxxxx>, Guo Ren <guoren@xxxxxxxxxx>, Nick Hu <nickhu@xxxxxxxxxxxxx>, Paul Walmsley <paul.walmsley@xxxxxxxxxx>, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>, linux-arm-kernel@xxxxxxxxxxxxxxxxxxx, kvmarm@xxxxxxxxxxxxxxxxxxxxx, linux-csky@xxxxxxxxxxxxxxx, linux-riscv@xxxxxxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxxx
 
- Delivery-date: Thu, 08 Jul 2021 08:54:34 +0000
 
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
 
 
 
On 7/2/2021 7:22 PM, Peter Zijlstra wrote:
 
On Tue, Jun 22, 2021 at 05:42:49PM +0800, Zhu Lingshan wrote:
 
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 8f71dd72ef95..c71af4cfba9b 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -90,6 +90,27 @@ DEFINE_STATIC_CALL_NULL(x86_pmu_pebs_aliases, 
*x86_pmu.pebs_aliases);
   */
  DEFINE_STATIC_CALL_RET0(x86_pmu_guest_get_msrs, *x86_pmu.guest_get_msrs);
   
+DEFINE_STATIC_CALL_RET0(x86_guest_state, *(perf_guest_cbs->state));
+DEFINE_STATIC_CALL_RET0(x86_guest_get_ip, *(perf_guest_cbs->get_ip));
+DEFINE_STATIC_CALL_RET0(x86_guest_handle_intel_pt_intr, 
*(perf_guest_cbs->handle_intel_pt_intr));
+
+void arch_perf_update_guest_cbs(void)
+{
+       static_call_update(x86_guest_state, (void *)&__static_call_return0);
+       static_call_update(x86_guest_get_ip, (void *)&__static_call_return0);
+       static_call_update(x86_guest_handle_intel_pt_intr, (void 
*)&__static_call_return0);
+
+       if (perf_guest_cbs && perf_guest_cbs->state)
+               static_call_update(x86_guest_state, perf_guest_cbs->state);
+
+       if (perf_guest_cbs && perf_guest_cbs->get_ip)
+               static_call_update(x86_guest_get_ip, perf_guest_cbs->get_ip);
+
+       if (perf_guest_cbs && perf_guest_cbs->handle_intel_pt_intr)
+               static_call_update(x86_guest_handle_intel_pt_intr,
+                                  perf_guest_cbs->handle_intel_pt_intr);
+}
 
Coding style wants { } on that last if().
 
will fix these coding style issues in V8
Thanks!
 
 
    
     |