Message ID | 4ffd3d6143f991615ffe07f43952cbc62163d319.1521452718.git.christophe.leroy@c-s.fr (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] powerpc/mm: Add missing tracepoint for tlbie | expand |
On Mon, 19 Mar 2018 11:32:38 +0100 (CET) Christophe Leroy <christophe.leroy@c-s.fr> wrote: > commit 0428491cba927 ("powerpc/mm: Trace tlbie(l) instructions") > added tracepoints for tlbie calls, but _tlbil_va() was forgotten > > Fixes: 0428491cba927 ("powerpc/mm: Trace tlbie(l) instructions") > Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> > --- > arch/powerpc/mm/mmu_decl.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h > index 57fbc554c785..b9991e0c61a2 100644 > --- a/arch/powerpc/mm/mmu_decl.h > +++ b/arch/powerpc/mm/mmu_decl.h > @@ -21,6 +21,7 @@ > #include <linux/mm.h> > #include <asm/tlbflush.h> > #include <asm/mmu.h> > +#include <asm/trace.h> > > #ifdef CONFIG_PPC_MMU_NOHASH > > @@ -56,6 +57,7 @@ static inline void _tlbil_va(unsigned long address, unsigned int pid, > unsigned int tsize, unsigned int ind) > { > asm volatile ("tlbie %0; sync" : : "r" (address) : "memory"); > + trace_tlbie(pid, 0, address, 0, 0, 0, 0); I did not really cover a whole lot of NOHASH, any idea why its called tlbil_va and not _tlbie_va? The first field is really the lpid and should be 0 for non-virtualized systems. Can I recommend that we rs field for pid and the rb field for address? so effectively something like trace_tlbie(0, 0, address, pid, 0, 0, 0); Balbir
Le 19/03/2018 à 23:39, Balbir Singh a écrit : > On Mon, 19 Mar 2018 11:32:38 +0100 (CET) > Christophe Leroy <christophe.leroy@c-s.fr> wrote: > >> commit 0428491cba927 ("powerpc/mm: Trace tlbie(l) instructions") >> added tracepoints for tlbie calls, but _tlbil_va() was forgotten >> >> Fixes: 0428491cba927 ("powerpc/mm: Trace tlbie(l) instructions") >> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> >> --- >> arch/powerpc/mm/mmu_decl.h | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h >> index 57fbc554c785..b9991e0c61a2 100644 >> --- a/arch/powerpc/mm/mmu_decl.h >> +++ b/arch/powerpc/mm/mmu_decl.h >> @@ -21,6 +21,7 @@ >> #include <linux/mm.h> >> #include <asm/tlbflush.h> >> #include <asm/mmu.h> >> +#include <asm/trace.h> >> >> #ifdef CONFIG_PPC_MMU_NOHASH >> >> @@ -56,6 +57,7 @@ static inline void _tlbil_va(unsigned long address, unsigned int pid, >> unsigned int tsize, unsigned int ind) >> { >> asm volatile ("tlbie %0; sync" : : "r" (address) : "memory"); >> + trace_tlbie(pid, 0, address, 0, 0, 0, 0); > > > I did not really cover a whole lot of NOHASH, any idea why its > called tlbil_va and not _tlbie_va? Seems it comes from https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=0ba3418b8b1c85ee1771c63f1dd12041614e56ff Kumar ? > > The first field is really the lpid and should be 0 for non-virtualized > systems. Can I recommend that we rs field for pid and the rb field for > address? so effectively something like Yes having the address in rb is expected since it is the name of the only field tlbie has in the 32bits instruction set. Yes I can use rb for the pid. Christophe
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-20180319] [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-maple_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_tlbie' arch/powerpc/kernel/irq.o:(__tracepoints+0x50): first defined here >> arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0x28): multiple definition of `__tracepoint_hash_fault' arch/powerpc/kernel/irq.o:(__tracepoints+0x78): first defined here >> arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0x50): multiple definition of `__tracepoint_timer_interrupt_exit' arch/powerpc/kernel/irq.o:(__tracepoints+0xa0): first defined here >> arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0x78): multiple definition of `__tracepoint_timer_interrupt_entry' arch/powerpc/kernel/irq.o:(__tracepoints+0xc8): first defined here >> arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0xa0): multiple definition of `__tracepoint_irq_exit' arch/powerpc/kernel/irq.o:(__tracepoints+0x28): first defined here >> arch/powerpc/mm/pgtable-hash64.o:(__tracepoints+0xc8): multiple definition of `__tracepoint_irq_entry' arch/powerpc/kernel/irq.o:(__tracepoints+0x0): first defined here --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h index 57fbc554c785..b9991e0c61a2 100644 --- a/arch/powerpc/mm/mmu_decl.h +++ b/arch/powerpc/mm/mmu_decl.h @@ -21,6 +21,7 @@ #include <linux/mm.h> #include <asm/tlbflush.h> #include <asm/mmu.h> +#include <asm/trace.h> #ifdef CONFIG_PPC_MMU_NOHASH @@ -56,6 +57,7 @@ static inline void _tlbil_va(unsigned long address, unsigned int pid, unsigned int tsize, unsigned int ind) { asm volatile ("tlbie %0; sync" : : "r" (address) : "memory"); + trace_tlbie(pid, 0, address, 0, 0, 0, 0); } #elif defined(CONFIG_PPC_BOOK3E) extern void _tlbil_va(unsigned long address, unsigned int pid,
commit 0428491cba927 ("powerpc/mm: Trace tlbie(l) instructions") added tracepoints for tlbie calls, but _tlbil_va() was forgotten Fixes: 0428491cba927 ("powerpc/mm: Trace tlbie(l) instructions") Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> --- arch/powerpc/mm/mmu_decl.h | 2 ++ 1 file changed, 2 insertions(+)