Add a trace point for tlbia (Translation Lookaside Buffer Invalidate All) instruction.
Signed-off-by: Christophe Leroy <christophe.le...@c-s.fr> --- arch/powerpc/include/asm/trace.h | 15 +++++++++++++++ arch/powerpc/mm/mmu_decl.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/arch/powerpc/include/asm/trace.h b/arch/powerpc/include/asm/trace.h index 33f3b479138b..d1d63b173dd7 100644 --- a/arch/powerpc/include/asm/trace.h +++ b/arch/powerpc/include/asm/trace.h @@ -202,6 +202,21 @@ TRACE_EVENT(tlbie, __entry->r) ); +TRACE_EVENT(tlbia, + + TP_PROTO(unsigned long lpid), + TP_ARGS(lpid), + TP_STRUCT__entry( + __field(unsigned long, lpid) + ), + + TP_fast_assign( + __entry->lpid = lpid; + ), + + TP_printk("lpid=%ld", __entry->lpid) +); + #endif /* _TRACE_POWERPC_H */ #undef TRACE_INCLUDE_PATH diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h index b9991e0c61a2..d4ae7b5d45fe 100644 --- a/arch/powerpc/mm/mmu_decl.h +++ b/arch/powerpc/mm/mmu_decl.h @@ -32,10 +32,12 @@ static inline void _tlbil_all(void) { asm volatile ("sync; tlbia; isync" : : : "memory"); + trace_tlbia(MMU_NO_CONTEXT); } static inline void _tlbil_pid(unsigned int pid) { asm volatile ("sync; tlbia; isync" : : : "memory"); + trace_tlbia(pid); } #define _tlbil_pid_noind(pid) _tlbil_pid(pid) -- 2.13.3