Ok, na verdade, ele está executando bem o perf em relação ao kernel de depuração quando apenas o kernel normal é carregado.
Btw o kernel foi instalado com este tutorial para systemtap: link
Eu notei algumas coisas - o kernel de depuração já foi extraído - o nome é vmlinux não vmlinuz e é grande ..
a segunda coisa quando eu carrego no gdb eu vejo exatamente o mesmo número e o tempo de compilação é o mesmo do meu kernel não-debug carregado:
uname -a
Linux delo 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
e o gdb (baseado em this :
(gdb) print init_uts_ns.name
$1 = {sysname = "Linux", 'perf report -g -k /usr/lib/debug/boot/vmlinux-3.13.0-55-generic
0' <repeats 59 times>, nodename = "(none)", '- 3,18% app [kernel.kallsyms] [k] copy_user_enhanced_fast_string
- copy_user_enhanced_fast_string
- 98,98% system_call
-syscall
68,60% 0xbeef0100
31,40% 0xbeee0100
+ 0,54% generic_file_aio_read
0' <repeats 58 times>,
release = "3.13.0-55-generic", 'uname -a
Linux delo 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
0' <repeats 47 times>, version =
"#94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015", '(gdb) print init_uts_ns.name
$1 = {sysname = "Linux", 'perf report -g -k /usr/lib/debug/boot/vmlinux-3.13.0-55-generic
0' <repeats 59 times>, nodename = "(none)", '- 3,18% app [kernel.kallsyms] [k] copy_user_enhanced_fast_string
- copy_user_enhanced_fast_string
- 98,98% system_call
-syscall
68,60% 0xbeef0100
31,40% 0xbeee0100
+ 0,54% generic_file_aio_read
0' <repeats 58 times>,
release = "3.13.0-55-generic", '%pre%0' <repeats 47 times>, version =
"#94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015", '%pre%0' <repeats 21 times>,
machine = "x86_64", '%pre%0' <repeats 58 times>, domainname = "(none)", '%pre%0' <repeats 58 times>}
0' <repeats 21 times>,
machine = "x86_64", '%pre%0' <repeats 58 times>, domainname = "(none)", '%pre%0' <repeats 58 times>}
Quero dizer que a parte # 94 ... é a mesma.
Quando executo o perfo gravado com:
%pre%atualmente funciona bem - vejo os símbolos do kernel traduzidos para funções reais (-g é apenas para calltrace):
%pre%alguém me disse que quando o kernel inicializava e o kernel usado pelo perf não se alinhava, eu definitivamente o via - as funções das amostras do kernel não faziam sentido (apenas alguns dados aleatórios em vez do nome real).