Re: [PATCH v6 1/5] tools, perf, script: Add --insn-trace for instruction decoding
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
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
> > +> 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
> > +> 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
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
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
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
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
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
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],