powerpc: Add doorbell tracepoints
When analysing sources of OS jitter, I noticed that doorbells cannot be traced. Signed-off-by: Anton Blanchard <anton@ozlabs.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
32eeb5614d
commit
5b2a152962
|
@ -54,6 +54,22 @@ DEFINE_EVENT(ppc64_interrupt_class, timer_interrupt_exit,
|
|||
TP_ARGS(regs)
|
||||
);
|
||||
|
||||
#ifdef CONFIG_PPC_DOORBELL
|
||||
DEFINE_EVENT(ppc64_interrupt_class, doorbell_entry,
|
||||
|
||||
TP_PROTO(struct pt_regs *regs),
|
||||
|
||||
TP_ARGS(regs)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ppc64_interrupt_class, doorbell_exit,
|
||||
|
||||
TP_PROTO(struct pt_regs *regs),
|
||||
|
||||
TP_ARGS(regs)
|
||||
);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
extern int hcall_tracepoint_regfunc(void);
|
||||
extern void hcall_tracepoint_unregfunc(void);
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <asm/dbell.h>
|
||||
#include <asm/irq_regs.h>
|
||||
#include <asm/kvm_ppc.h>
|
||||
#include <asm/trace.h>
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
|
@ -81,6 +82,7 @@ void doorbell_exception(struct pt_regs *regs)
|
|||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
|
||||
irq_enter();
|
||||
trace_doorbell_entry(regs);
|
||||
|
||||
ppc_msgsync();
|
||||
|
||||
|
@ -91,6 +93,7 @@ void doorbell_exception(struct pt_regs *regs)
|
|||
|
||||
smp_ipi_demux_relaxed(); /* already performed the barrier */
|
||||
|
||||
trace_doorbell_exit(regs);
|
||||
irq_exit();
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue