Re: [PATCH 02/11] perf tools script: Support insn output for normal samples

From: Jiri Olsa
Date: Mon Feb 25 2019 - 07:56:06 EST


On Sun, Feb 24, 2019 at 07:37:13AM -0800, Andi Kleen wrote:
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>
> perf script -F +insn was only working for PT traces because
> the PT instruction decoder was filling in the insn/insn_len
> sample attributes. Support it for non PT samples too on x86
> using the existing x86 instruction decoder.
>
> % perf record -a sleep 1
> % perf script -F ip,sym,insn --xed
> ffffffff811704c9 remote_function movl %eax, 0x18(%rbx)
> ffffffff8100bb50 intel_bts_enable_local retq
> ffffffff81048612 native_apic_mem_write movl %esi, -0xa04000(%rdi)
> ffffffff81048612 native_apic_mem_write movl %esi, -0xa04000(%rdi)
> ffffffff81048612 native_apic_mem_write movl %esi, -0xa04000(%rdi)
> ffffffff810f1f79 generic_exec_single xor %eax, %eax
> ffffffff811704c9 remote_function movl %eax, 0x18(%rbx)
> ffffffff8100bb34 intel_bts_enable_local movl 0x2000(%rax), %edx
> ffffffff81048610 native_apic_mem_write mov %edi, %edi

also for samples with empty instruction, where I guess we fail
for some reason to retrieve it, we will show default (0?) mnemonic

[jolsa@krava perf]$ ./perf script -F insn
insn:
insn:
insn:
insn:
insn:
insn:
insn:
insn: 76 ea
insn:
insn: 0f a2
insn: 29 c8
insn: 8b 04 90
insn: 0f a2

[jolsa@krava perf]$ ./perf script -F insn --xed
addb %al, (%rax)
addb %al, (%rax)
addb %al, (%rax)
addb %al, (%rax)
addb %al, (%rax)
addb %al, (%rax)
addb %al, (%rax)
jbe 0xffffffffffffffec
addb %al, (%rax)
cpuid
sub %ecx, %eax
movl (%rax,%rdx,4), %eax
cpuid

jirka