Re: [PATCH 2/2] powerpc/mm: Trace tlbia instruction

2018-03-20 Thread kbuild test robot
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

2018-03-20 Thread Christophe LEROY



Le 19/03/2018 à 23:43, Balbir Singh a écrit :

On Mon, 19 Mar 2018 11:32:40 +0100 (CET)
Christophe Leroy  wrote:


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

2018-03-19 Thread Balbir Singh
On Mon, 19 Mar 2018 11:32:40 +0100 (CET)
Christophe Leroy  wrote:

> 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

2018-03-19 Thread Christophe Leroy
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