Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-10-08 Thread Arnaldo Carvalho de Melo
Em Mon, Oct 08, 2018 at 11:41:15AM -0700, Andi Kleen escreveu:
> > > +> git clone https://github.com/intelxed/mbuild.git mbuild
> > > 
> > > +> git clone https://github.com/intelxed/xed  
> > > 
> > > +> cd xed 
> > > 
> > > +> mkdir obj  
> > > 
> > > +> cd obj 
> > > 
> > > +> ../mfile.py
> > > 
> > > +> sudo ../mfile.py --prefix=/usr/local install
> 
> 
> Need 
> 
> ../mfile.py examples
> sudo ../mfile.py --prefix=/usr/local examples install

Will try that now.


Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-10-08 Thread Arnaldo Carvalho de Melo
Em Mon, Oct 08, 2018 at 11:41:15AM -0700, Andi Kleen escreveu:
> > > +> git clone https://github.com/intelxed/mbuild.git mbuild
> > > 
> > > +> git clone https://github.com/intelxed/xed  
> > > 
> > > +> cd xed 
> > > 
> > > +> mkdir obj  
> > > 
> > > +> cd obj 
> > > 
> > > +> ../mfile.py
> > > 
> > > +> sudo ../mfile.py --prefix=/usr/local install
> 
> 
> Need 
> 
> ../mfile.py examples
> sudo ../mfile.py --prefix=/usr/local examples install

Will try that now.


Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-10-08 Thread Andi Kleen
> > +> git clone https://github.com/intelxed/mbuild.git mbuild  
> >   
> > +> git clone https://github.com/intelxed/xed
> >   
> > +> cd xed   
> >   
> > +> mkdir obj
> >   
> > +> cd obj   
> >   
> > +> ../mfile.py  
> >   
> > +> sudo ../mfile.py --prefix=/usr/local install


Need 

../mfile.py examples
sudo ../mfile.py --prefix=/usr/local examples install


-Andi



Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-10-08 Thread Andi Kleen
> > +> git clone https://github.com/intelxed/mbuild.git mbuild  
> >   
> > +> git clone https://github.com/intelxed/xed
> >   
> > +> cd xed   
> >   
> > +> mkdir obj
> >   
> > +> cd obj   
> >   
> > +> ../mfile.py  
> >   
> > +> sudo ../mfile.py --prefix=/usr/local install


Need 

../mfile.py examples
sudo ../mfile.py --prefix=/usr/local examples install


-Andi



Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-10-08 Thread Arnaldo Carvalho de Melo
Em Thu, Sep 20, 2018 at 11:05:36AM -0700, Andi Kleen escreveu:
> From: Andi Kleen 
> 
> Add a --insn-trace short hand option for decoding and disassembling
> instruction streams for intel_pt. This automatically pipes the
> output into the xed disassembler to generate disassembled instructions.
> This just makes this use model much nicer to use
> 
> Before
> 
> % perf record -e intel_pt// ...
> % perf script --itrace=i0ns --ns -F +insn,-event,-period | xed -F insn: -A -64
>swapper 0 [000] 117276.429606186:  81010486 pt_config 
> ([kernel.kallsyms])  nopl  %eax, (%rax,%rax,1)
>swapper 0 [000] 117276.429606186:  8101048b pt_config 
> ([kernel.kallsyms])  add $0x10, %rsp
>swapper 0 [000] 117276.429606186:  8101048f pt_config 
> ([kernel.kallsyms])  popq  %rbx
>swapper 0 [000] 117276.429606186:  81010490 pt_config 
> ([kernel.kallsyms])  popq  %rbp
>swapper 0 [000] 117276.429606186:  81010491 pt_config 
> ([kernel.kallsyms])  popq  %r12
>swapper 0 [000] 117276.429606186:  81010493 pt_config 
> ([kernel.kallsyms])  popq  %r13
>swapper 0 [000] 117276.429606186:  81010495 pt_config 
> ([kernel.kallsyms])  popq  %r14
>swapper 0 [000] 117276.429606186:  81010497 pt_config 
> ([kernel.kallsyms])  popq  %r15
>swapper 0 [000] 117276.429606186:  81010499 pt_config 
> ([kernel.kallsyms])  retq
>swapper 0 [000] 117276.429606186:  8101063e pt_event_add 
> ([kernel.kallsyms])   cmpl  $0x1, 0x1b0(%rbx)
>swapper 0 [000] 117276.429606186:  81010645 pt_event_add 
> ([kernel.kallsyms])   mov $0xffea, %eax
>swapper 0 [000] 117276.429606186:  8101064a pt_event_add 
> ([kernel.kallsyms])   mov $0x0, %edx
>swapper 0 [000] 117276.429606186:  8101064f pt_event_add 
> ([kernel.kallsyms])   popq  %rbx
>swapper 0 [000] 117276.429606186:  81010650 pt_event_add 
> ([kernel.kallsyms])   cmovnz %edx, %eax
>swapper 0 [000] 117276.429606186:  81010653 pt_event_add 
> ([kernel.kallsyms])   jmp 0x81010635
>swapper 0 [000] 117276.429606186:  81010635 pt_event_add 
> ([kernel.kallsyms])   retq
>swapper 0 [000] 117276.429606186:  8115e687 
> event_sched_in.isra.107 ([kernel.kallsyms])test %eax, %eax
> 
> Now
> 
> % perf record -e intel_pt// ...
> % perf script --insn-trace --xed
> ... same output ...
> 
> XED needs to be installed with:
> 
> > git clone https://github.com/intelxed/mbuild.git mbuild
> > git clone https://github.com/intelxed/xed
> > cd xed
> > mkdir obj
> > cd obj
> > ../mfile.py
> > sudo ../mfile.py --prefix=/usr/local install

I tried following these instructions, but in the end these are the only
files installed in /usr/local:

[acme@jouet obj]$ find /usr/local -name "*xed*"
/usr/local/include/xed
/usr/local/include/xed/xed-reg-class.h
/usr/local/include/xed/xed-reg-role-enum.h
/usr/local/include/xed/xed-format-options.h
/usr/local/include/xed/xed-encoder-hl.h
/usr/local/include/xed/xed-ild.h
/usr/local/include/xed/xed-encode.h
/usr/local/include/xed/xed-immed.h
/usr/local/include/xed/xed-init-pointer-names.h
/usr/local/include/xed/xed-operand-accessors.h
/usr/local/include/xed/xed-operand-enum.h
/usr/local/include/xed/xed-flags.h
/usr/local/include/xed/xed-operand-action.h
/usr/local/include/xed/xed-print-info.h
/usr/local/include/xed/xed-chip-features.h
/usr/local/include/xed/xed-types.h
/usr/local/include/xed/xed-common-hdrs.h
/usr/local/include/xed/xed-decoded-inst-api.h
/usr/local/include/xed/xed-inst.h
/usr/local/include/xed/xed-address-width-enum.h
/usr/local/include/xed/xed-state.h
/usr/local/include/xed/xed-decoded-inst.h
/usr/local/include/xed/xed-isa-set.h
/usr/local/include/xed/xed-reg-enum.h
/usr/local/include/xed/xed-attribute-enum.h
/usr/local/include/xed/xed-operand-ctype-enum.h
/usr/local/include/xed/xed-extension-enum.h
/usr/local/include/xed/xed-iformfl-enum.h
/usr/local/include/xed/xed-convert-table-init.h
/usr/local/include/xed/xed-immdis.h
/usr/local/include/xed/xed-iclass-enum.h
/usr/local/include/xed/xed-flag-enum.h
/usr/local/include/xed/xed-get-time.h
/usr/local/include/xed/xed-attributes.h
/usr/local/include/xed/xed-init.h
/usr/local/include/xed/xed-operand-storage.h
/usr/local/include/xed/xed-operand-width-enum.h
/usr/local/include/xed/xed-operand-ctype-map.h
/usr/local/include/xed/xed-error-enum.h
/usr/local/include/xed/xed-operand-values-interface.h
/usr/local/include/xed/xed-operand-convert-enum.h
/usr/local/include/xed/xed-chip-enum.h
/usr/local/include/xed/xed-cpuid-bit-enum.h
/usr/local/include/xed/xed-iform-enum.h
/usr/local/include/xed/xed-decode.h
/usr/local/include/xed/xed-flag-action-enum.h
/usr/local/include/xed/xed-rep-prefix.h

Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-10-08 Thread Arnaldo Carvalho de Melo
Em Thu, Sep 20, 2018 at 11:05:36AM -0700, Andi Kleen escreveu:
> From: Andi Kleen 
> 
> Add a --insn-trace short hand option for decoding and disassembling
> instruction streams for intel_pt. This automatically pipes the
> output into the xed disassembler to generate disassembled instructions.
> This just makes this use model much nicer to use
> 
> Before
> 
> % perf record -e intel_pt// ...
> % perf script --itrace=i0ns --ns -F +insn,-event,-period | xed -F insn: -A -64
>swapper 0 [000] 117276.429606186:  81010486 pt_config 
> ([kernel.kallsyms])  nopl  %eax, (%rax,%rax,1)
>swapper 0 [000] 117276.429606186:  8101048b pt_config 
> ([kernel.kallsyms])  add $0x10, %rsp
>swapper 0 [000] 117276.429606186:  8101048f pt_config 
> ([kernel.kallsyms])  popq  %rbx
>swapper 0 [000] 117276.429606186:  81010490 pt_config 
> ([kernel.kallsyms])  popq  %rbp
>swapper 0 [000] 117276.429606186:  81010491 pt_config 
> ([kernel.kallsyms])  popq  %r12
>swapper 0 [000] 117276.429606186:  81010493 pt_config 
> ([kernel.kallsyms])  popq  %r13
>swapper 0 [000] 117276.429606186:  81010495 pt_config 
> ([kernel.kallsyms])  popq  %r14
>swapper 0 [000] 117276.429606186:  81010497 pt_config 
> ([kernel.kallsyms])  popq  %r15
>swapper 0 [000] 117276.429606186:  81010499 pt_config 
> ([kernel.kallsyms])  retq
>swapper 0 [000] 117276.429606186:  8101063e pt_event_add 
> ([kernel.kallsyms])   cmpl  $0x1, 0x1b0(%rbx)
>swapper 0 [000] 117276.429606186:  81010645 pt_event_add 
> ([kernel.kallsyms])   mov $0xffea, %eax
>swapper 0 [000] 117276.429606186:  8101064a pt_event_add 
> ([kernel.kallsyms])   mov $0x0, %edx
>swapper 0 [000] 117276.429606186:  8101064f pt_event_add 
> ([kernel.kallsyms])   popq  %rbx
>swapper 0 [000] 117276.429606186:  81010650 pt_event_add 
> ([kernel.kallsyms])   cmovnz %edx, %eax
>swapper 0 [000] 117276.429606186:  81010653 pt_event_add 
> ([kernel.kallsyms])   jmp 0x81010635
>swapper 0 [000] 117276.429606186:  81010635 pt_event_add 
> ([kernel.kallsyms])   retq
>swapper 0 [000] 117276.429606186:  8115e687 
> event_sched_in.isra.107 ([kernel.kallsyms])test %eax, %eax
> 
> Now
> 
> % perf record -e intel_pt// ...
> % perf script --insn-trace --xed
> ... same output ...
> 
> XED needs to be installed with:
> 
> > git clone https://github.com/intelxed/mbuild.git mbuild
> > git clone https://github.com/intelxed/xed
> > cd xed
> > mkdir obj
> > cd obj
> > ../mfile.py
> > sudo ../mfile.py --prefix=/usr/local install

I tried following these instructions, but in the end these are the only
files installed in /usr/local:

[acme@jouet obj]$ find /usr/local -name "*xed*"
/usr/local/include/xed
/usr/local/include/xed/xed-reg-class.h
/usr/local/include/xed/xed-reg-role-enum.h
/usr/local/include/xed/xed-format-options.h
/usr/local/include/xed/xed-encoder-hl.h
/usr/local/include/xed/xed-ild.h
/usr/local/include/xed/xed-encode.h
/usr/local/include/xed/xed-immed.h
/usr/local/include/xed/xed-init-pointer-names.h
/usr/local/include/xed/xed-operand-accessors.h
/usr/local/include/xed/xed-operand-enum.h
/usr/local/include/xed/xed-flags.h
/usr/local/include/xed/xed-operand-action.h
/usr/local/include/xed/xed-print-info.h
/usr/local/include/xed/xed-chip-features.h
/usr/local/include/xed/xed-types.h
/usr/local/include/xed/xed-common-hdrs.h
/usr/local/include/xed/xed-decoded-inst-api.h
/usr/local/include/xed/xed-inst.h
/usr/local/include/xed/xed-address-width-enum.h
/usr/local/include/xed/xed-state.h
/usr/local/include/xed/xed-decoded-inst.h
/usr/local/include/xed/xed-isa-set.h
/usr/local/include/xed/xed-reg-enum.h
/usr/local/include/xed/xed-attribute-enum.h
/usr/local/include/xed/xed-operand-ctype-enum.h
/usr/local/include/xed/xed-extension-enum.h
/usr/local/include/xed/xed-iformfl-enum.h
/usr/local/include/xed/xed-convert-table-init.h
/usr/local/include/xed/xed-immdis.h
/usr/local/include/xed/xed-iclass-enum.h
/usr/local/include/xed/xed-flag-enum.h
/usr/local/include/xed/xed-get-time.h
/usr/local/include/xed/xed-attributes.h
/usr/local/include/xed/xed-init.h
/usr/local/include/xed/xed-operand-storage.h
/usr/local/include/xed/xed-operand-width-enum.h
/usr/local/include/xed/xed-operand-ctype-map.h
/usr/local/include/xed/xed-error-enum.h
/usr/local/include/xed/xed-operand-values-interface.h
/usr/local/include/xed/xed-operand-convert-enum.h
/usr/local/include/xed/xed-chip-enum.h
/usr/local/include/xed/xed-cpuid-bit-enum.h
/usr/local/include/xed/xed-iform-enum.h
/usr/local/include/xed/xed-decode.h
/usr/local/include/xed/xed-flag-action-enum.h
/usr/local/include/xed/xed-rep-prefix.h

Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-10-08 Thread Arnaldo Carvalho de Melo
Em Thu, Sep 20, 2018 at 11:05:36AM -0700, Andi Kleen escreveu:
> From: Andi Kleen 
> 
> Add a --insn-trace short hand option for decoding and disassembling
> instruction streams for intel_pt. This automatically pipes the
> output into the xed disassembler to generate disassembled instructions.
> This just makes this use model much nicer to use
> 
> Before
> 
> % perf record -e intel_pt// ...
> % perf script --itrace=i0ns --ns -F +insn,-event,-period | xed -F insn: -A -64
>swapper 0 [000] 117276.429606186:  81010486 pt_config 
> ([kernel.kallsyms])  nopl  %eax, (%rax,%rax,1)
>swapper 0 [000] 117276.429606186:  8101048b pt_config 
> ([kernel.kallsyms])  add $0x10, %rsp
>swapper 0 [000] 117276.429606186:  8101048f pt_config 
> ([kernel.kallsyms])  popq  %rbx
>swapper 0 [000] 117276.429606186:  81010490 pt_config 
> ([kernel.kallsyms])  popq  %rbp
>swapper 0 [000] 117276.429606186:  81010491 pt_config 
> ([kernel.kallsyms])  popq  %r12
>swapper 0 [000] 117276.429606186:  81010493 pt_config 
> ([kernel.kallsyms])  popq  %r13
>swapper 0 [000] 117276.429606186:  81010495 pt_config 
> ([kernel.kallsyms])  popq  %r14
>swapper 0 [000] 117276.429606186:  81010497 pt_config 
> ([kernel.kallsyms])  popq  %r15
>swapper 0 [000] 117276.429606186:  81010499 pt_config 
> ([kernel.kallsyms])  retq
>swapper 0 [000] 117276.429606186:  8101063e pt_event_add 
> ([kernel.kallsyms])   cmpl  $0x1, 0x1b0(%rbx)
>swapper 0 [000] 117276.429606186:  81010645 pt_event_add 
> ([kernel.kallsyms])   mov $0xffea, %eax
>swapper 0 [000] 117276.429606186:  8101064a pt_event_add 
> ([kernel.kallsyms])   mov $0x0, %edx
>swapper 0 [000] 117276.429606186:  8101064f pt_event_add 
> ([kernel.kallsyms])   popq  %rbx
>swapper 0 [000] 117276.429606186:  81010650 pt_event_add 
> ([kernel.kallsyms])   cmovnz %edx, %eax
>swapper 0 [000] 117276.429606186:  81010653 pt_event_add 
> ([kernel.kallsyms])   jmp 0x81010635
>swapper 0 [000] 117276.429606186:  81010635 pt_event_add 
> ([kernel.kallsyms])   retq
>swapper 0 [000] 117276.429606186:  8115e687 
> event_sched_in.isra.107 ([kernel.kallsyms])test %eax, %eax
> 
> Now
> 
> % perf record -e intel_pt// ...
> % perf script --insn-trace --xed
> ... same output ...
> 
> XED needs to be installed with:
> 
> > git clone https://github.com/intelxed/mbuild.git mbuild
> > git clone https://github.com/intelxed/xed
> > cd xed
> > mkdir obj
> > cd obj
> > ../mfile.py
> > sudo ../mfile.py --prefix=/usr/local install
> 
> Signed-off-by: Andi Kleen 

Fixed up whitespace damage in the Documentation for building xed,
applied.

- Arnaldo


Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-10-08 Thread Arnaldo Carvalho de Melo
Em Thu, Sep 20, 2018 at 11:05:36AM -0700, Andi Kleen escreveu:
> From: Andi Kleen 
> 
> Add a --insn-trace short hand option for decoding and disassembling
> instruction streams for intel_pt. This automatically pipes the
> output into the xed disassembler to generate disassembled instructions.
> This just makes this use model much nicer to use
> 
> Before
> 
> % perf record -e intel_pt// ...
> % perf script --itrace=i0ns --ns -F +insn,-event,-period | xed -F insn: -A -64
>swapper 0 [000] 117276.429606186:  81010486 pt_config 
> ([kernel.kallsyms])  nopl  %eax, (%rax,%rax,1)
>swapper 0 [000] 117276.429606186:  8101048b pt_config 
> ([kernel.kallsyms])  add $0x10, %rsp
>swapper 0 [000] 117276.429606186:  8101048f pt_config 
> ([kernel.kallsyms])  popq  %rbx
>swapper 0 [000] 117276.429606186:  81010490 pt_config 
> ([kernel.kallsyms])  popq  %rbp
>swapper 0 [000] 117276.429606186:  81010491 pt_config 
> ([kernel.kallsyms])  popq  %r12
>swapper 0 [000] 117276.429606186:  81010493 pt_config 
> ([kernel.kallsyms])  popq  %r13
>swapper 0 [000] 117276.429606186:  81010495 pt_config 
> ([kernel.kallsyms])  popq  %r14
>swapper 0 [000] 117276.429606186:  81010497 pt_config 
> ([kernel.kallsyms])  popq  %r15
>swapper 0 [000] 117276.429606186:  81010499 pt_config 
> ([kernel.kallsyms])  retq
>swapper 0 [000] 117276.429606186:  8101063e pt_event_add 
> ([kernel.kallsyms])   cmpl  $0x1, 0x1b0(%rbx)
>swapper 0 [000] 117276.429606186:  81010645 pt_event_add 
> ([kernel.kallsyms])   mov $0xffea, %eax
>swapper 0 [000] 117276.429606186:  8101064a pt_event_add 
> ([kernel.kallsyms])   mov $0x0, %edx
>swapper 0 [000] 117276.429606186:  8101064f pt_event_add 
> ([kernel.kallsyms])   popq  %rbx
>swapper 0 [000] 117276.429606186:  81010650 pt_event_add 
> ([kernel.kallsyms])   cmovnz %edx, %eax
>swapper 0 [000] 117276.429606186:  81010653 pt_event_add 
> ([kernel.kallsyms])   jmp 0x81010635
>swapper 0 [000] 117276.429606186:  81010635 pt_event_add 
> ([kernel.kallsyms])   retq
>swapper 0 [000] 117276.429606186:  8115e687 
> event_sched_in.isra.107 ([kernel.kallsyms])test %eax, %eax
> 
> Now
> 
> % perf record -e intel_pt// ...
> % perf script --insn-trace --xed
> ... same output ...
> 
> XED needs to be installed with:
> 
> > git clone https://github.com/intelxed/mbuild.git mbuild
> > git clone https://github.com/intelxed/xed
> > cd xed
> > mkdir obj
> > cd obj
> > ../mfile.py
> > sudo ../mfile.py --prefix=/usr/local install
> 
> Signed-off-by: Andi Kleen 

Fixed up whitespace damage in the Documentation for building xed,
applied.

- Arnaldo


[PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-09-20 Thread Andi Kleen
From: Andi Kleen 

Add a --insn-trace short hand option for decoding and disassembling
instruction streams for intel_pt. This automatically pipes the
output into the xed disassembler to generate disassembled instructions.
This just makes this use model much nicer to use

Before

% perf record -e intel_pt// ...
% perf script --itrace=i0ns --ns -F +insn,-event,-period | xed -F insn: -A -64
   swapper 0 [000] 117276.429606186:  81010486 pt_config 
([kernel.kallsyms])  nopl  %eax, (%rax,%rax,1)
   swapper 0 [000] 117276.429606186:  8101048b pt_config 
([kernel.kallsyms])  add $0x10, %rsp
   swapper 0 [000] 117276.429606186:  8101048f pt_config 
([kernel.kallsyms])  popq  %rbx
   swapper 0 [000] 117276.429606186:  81010490 pt_config 
([kernel.kallsyms])  popq  %rbp
   swapper 0 [000] 117276.429606186:  81010491 pt_config 
([kernel.kallsyms])  popq  %r12
   swapper 0 [000] 117276.429606186:  81010493 pt_config 
([kernel.kallsyms])  popq  %r13
   swapper 0 [000] 117276.429606186:  81010495 pt_config 
([kernel.kallsyms])  popq  %r14
   swapper 0 [000] 117276.429606186:  81010497 pt_config 
([kernel.kallsyms])  popq  %r15
   swapper 0 [000] 117276.429606186:  81010499 pt_config 
([kernel.kallsyms])  retq
   swapper 0 [000] 117276.429606186:  8101063e pt_event_add 
([kernel.kallsyms])   cmpl  $0x1, 0x1b0(%rbx)
   swapper 0 [000] 117276.429606186:  81010645 pt_event_add 
([kernel.kallsyms])   mov $0xffea, %eax
   swapper 0 [000] 117276.429606186:  8101064a pt_event_add 
([kernel.kallsyms])   mov $0x0, %edx
   swapper 0 [000] 117276.429606186:  8101064f pt_event_add 
([kernel.kallsyms])   popq  %rbx
   swapper 0 [000] 117276.429606186:  81010650 pt_event_add 
([kernel.kallsyms])   cmovnz %edx, %eax
   swapper 0 [000] 117276.429606186:  81010653 pt_event_add 
([kernel.kallsyms])   jmp 0x81010635
   swapper 0 [000] 117276.429606186:  81010635 pt_event_add 
([kernel.kallsyms])   retq
   swapper 0 [000] 117276.429606186:  8115e687 
event_sched_in.isra.107 ([kernel.kallsyms])test %eax, %eax

Now

% perf record -e intel_pt// ...
% perf script --insn-trace --xed
... same output ...

XED needs to be installed with:

> git clone https://github.com/intelxed/mbuild.git mbuild
> git clone https://github.com/intelxed/xed
> cd xed
> mkdir obj
> cd obj
> ../mfile.py
> sudo ../mfile.py --prefix=/usr/local install

Signed-off-by: Andi Kleen 

--

v2: Add separate --xed option
v3: Add xed build documentation and update commit
---
 tools/perf/Documentation/build-xed.txt   | 11 +++
 tools/perf/Documentation/perf-script.txt |  7 +++
 tools/perf/builtin-script.c  | 23 +++
 3 files changed, 41 insertions(+)
 create mode 100644 tools/perf/Documentation/build-xed.txt

diff --git a/tools/perf/Documentation/build-xed.txt 
b/tools/perf/Documentation/build-xed.txt
new file mode 100644
index ..8da3028e6dca
--- /dev/null
+++ b/tools/perf/Documentation/build-xed.txt
@@ -0,0 +1,11 @@
+
+For --xed the xed tool is needed. Here is how to install it:
+
+> git clone https://github.com/intelxed/mbuild.git mbuild  
  
+> git clone https://github.com/intelxed/xed
  
+> cd xed   
  
+> mkdir obj
  
+> cd obj   
  
+> ../mfile.py  
  
+> sudo ../mfile.py --prefix=/usr/local install
+
diff --git a/tools/perf/Documentation/perf-script.txt 
b/tools/perf/Documentation/perf-script.txt
index afdafe2110a1..00c655ab4968 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -383,6 +383,13 @@ include::itrace.txt[]
will be printed. Each entry has function name and file/line. Enabled by
default, disable with --no-inline.
 
+--insn-trace::
+   Show instruction stream for intel_pt traces. Combine with --xed to
+   show disassembly.
+
+--xed::
+   Run xed disassembler on output. Requires installing the xed 
disassembler.
+
 SEE ALSO
 
 linkperf:perf-record[1], 

[PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding

2018-09-20 Thread Andi Kleen
From: Andi Kleen 

Add a --insn-trace short hand option for decoding and disassembling
instruction streams for intel_pt. This automatically pipes the
output into the xed disassembler to generate disassembled instructions.
This just makes this use model much nicer to use

Before

% perf record -e intel_pt// ...
% perf script --itrace=i0ns --ns -F +insn,-event,-period | xed -F insn: -A -64
   swapper 0 [000] 117276.429606186:  81010486 pt_config 
([kernel.kallsyms])  nopl  %eax, (%rax,%rax,1)
   swapper 0 [000] 117276.429606186:  8101048b pt_config 
([kernel.kallsyms])  add $0x10, %rsp
   swapper 0 [000] 117276.429606186:  8101048f pt_config 
([kernel.kallsyms])  popq  %rbx
   swapper 0 [000] 117276.429606186:  81010490 pt_config 
([kernel.kallsyms])  popq  %rbp
   swapper 0 [000] 117276.429606186:  81010491 pt_config 
([kernel.kallsyms])  popq  %r12
   swapper 0 [000] 117276.429606186:  81010493 pt_config 
([kernel.kallsyms])  popq  %r13
   swapper 0 [000] 117276.429606186:  81010495 pt_config 
([kernel.kallsyms])  popq  %r14
   swapper 0 [000] 117276.429606186:  81010497 pt_config 
([kernel.kallsyms])  popq  %r15
   swapper 0 [000] 117276.429606186:  81010499 pt_config 
([kernel.kallsyms])  retq
   swapper 0 [000] 117276.429606186:  8101063e pt_event_add 
([kernel.kallsyms])   cmpl  $0x1, 0x1b0(%rbx)
   swapper 0 [000] 117276.429606186:  81010645 pt_event_add 
([kernel.kallsyms])   mov $0xffea, %eax
   swapper 0 [000] 117276.429606186:  8101064a pt_event_add 
([kernel.kallsyms])   mov $0x0, %edx
   swapper 0 [000] 117276.429606186:  8101064f pt_event_add 
([kernel.kallsyms])   popq  %rbx
   swapper 0 [000] 117276.429606186:  81010650 pt_event_add 
([kernel.kallsyms])   cmovnz %edx, %eax
   swapper 0 [000] 117276.429606186:  81010653 pt_event_add 
([kernel.kallsyms])   jmp 0x81010635
   swapper 0 [000] 117276.429606186:  81010635 pt_event_add 
([kernel.kallsyms])   retq
   swapper 0 [000] 117276.429606186:  8115e687 
event_sched_in.isra.107 ([kernel.kallsyms])test %eax, %eax

Now

% perf record -e intel_pt// ...
% perf script --insn-trace --xed
... same output ...

XED needs to be installed with:

> git clone https://github.com/intelxed/mbuild.git mbuild
> git clone https://github.com/intelxed/xed
> cd xed
> mkdir obj
> cd obj
> ../mfile.py
> sudo ../mfile.py --prefix=/usr/local install

Signed-off-by: Andi Kleen 

--

v2: Add separate --xed option
v3: Add xed build documentation and update commit
---
 tools/perf/Documentation/build-xed.txt   | 11 +++
 tools/perf/Documentation/perf-script.txt |  7 +++
 tools/perf/builtin-script.c  | 23 +++
 3 files changed, 41 insertions(+)
 create mode 100644 tools/perf/Documentation/build-xed.txt

diff --git a/tools/perf/Documentation/build-xed.txt 
b/tools/perf/Documentation/build-xed.txt
new file mode 100644
index ..8da3028e6dca
--- /dev/null
+++ b/tools/perf/Documentation/build-xed.txt
@@ -0,0 +1,11 @@
+
+For --xed the xed tool is needed. Here is how to install it:
+
+> git clone https://github.com/intelxed/mbuild.git mbuild  
  
+> git clone https://github.com/intelxed/xed
  
+> cd xed   
  
+> mkdir obj
  
+> cd obj   
  
+> ../mfile.py  
  
+> sudo ../mfile.py --prefix=/usr/local install
+
diff --git a/tools/perf/Documentation/perf-script.txt 
b/tools/perf/Documentation/perf-script.txt
index afdafe2110a1..00c655ab4968 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -383,6 +383,13 @@ include::itrace.txt[]
will be printed. Each entry has function name and file/line. Enabled by
default, disable with --no-inline.
 
+--insn-trace::
+   Show instruction stream for intel_pt traces. Combine with --xed to
+   show disassembly.
+
+--xed::
+   Run xed disassembler on output. Requires installing the xed 
disassembler.
+
 SEE ALSO
 
 linkperf:perf-record[1],