Re: [PATCH 2/2] powerpc/mm: Trace tlbia instruction
Hi Christophe, Thank you for the patch! Yet something to improve: [auto build test ERROR on v4.16-rc4] [also build test ERROR on next-20180320] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Christophe-Leroy/powerpc-mm-Add-missing-tracepoint-for-tlbie/20180320-130831 config: powerpc-g5_defconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=powerpc All errors (new ones prefixed by >>): >> arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0x0): multiple definition of >> `__tracepoint_tlbia' arch/powerpc/kernel/irq.o:(__tracepoints+0x50): first defined here arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0x28): multiple definition of `__tracepoint_tlbie' arch/powerpc/kernel/irq.o:(__tracepoints+0x78): first defined here arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0x50): multiple definition of `__tracepoint_hash_fault' arch/powerpc/kernel/irq.o:(__tracepoints+0xa0): first defined here arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0x78): multiple definition of `__tracepoint_timer_interrupt_exit' arch/powerpc/kernel/irq.o:(__tracepoints+0xc8): first defined here arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0xa0): multiple definition of `__tracepoint_timer_interrupt_entry' arch/powerpc/kernel/irq.o:(__tracepoints+0xf0): first defined here arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0xc8): multiple definition of `__tracepoint_irq_exit' arch/powerpc/kernel/irq.o:(__tracepoints+0x28): first defined here arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0xf0): multiple definition of `__tracepoint_irq_entry' arch/powerpc/kernel/irq.o:(__tracepoints+0x0): first defined here --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip
Re: [PATCH 2/2] powerpc/mm: Trace tlbia instruction
Le 19/03/2018 à 23:43, Balbir Singh a écrit : On Mon, 19 Mar 2018 11:32:40 +0100 (CET) Christophe Leroywrote: Add a trace point for tlbia (Translation Lookaside Buffer Invalidate All) instruction. Signed-off-by: Christophe Leroy --- 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) +); Do we want to call this lpid? Should we can it rs in consistence with tlbie trace ? Or just pid ? Allthough it is not an argument used by tlbia, I think it is good to keep a trace of it to keep track of the reason why tlbia is called. Christophe
Re: [PATCH 2/2] powerpc/mm: Trace tlbia instruction
On Mon, 19 Mar 2018 11:32:40 +0100 (CET) Christophe Leroywrote: > Add a trace point for tlbia (Translation Lookaside Buffer Invalidate > All) instruction. > > Signed-off-by: Christophe Leroy > --- > 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) > +); Do we want to call this lpid? Balbir Singh.
[PATCH 2/2] powerpc/mm: Trace tlbia instruction
Add a trace point for tlbia (Translation Lookaside Buffer Invalidate All) instruction. Signed-off-by: Christophe Leroy--- 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