perf script : wrong symoff in callchain

From: Matthieu CASTET
Date: Tue Oct 03 2017 - 06:19:34 EST


Hi,

while using perf on x86_64, I saw strange output for symoff.

$ perf record -g -- sleep 1
$ perf script -F comm,tid,pid,time,ip,sym,dso,symoff

[...]
sleep 11656/11656 1045318.546436:
7fff9542e5b5 __d_lookup_rcu+0x80006ae02035 ([kernel.kallsyms])
7fff9541e132 lookup_fast+0x80006ae02052 ([kernel.kallsyms])
7fff9541eae8 walk_component+0x80006ae02048 ([kernel.kallsyms])
7fff9541efa2 link_path_walk+0x80006ae021b2 ([kernel.kallsyms])
7fff9541c92d path_init+0x80006ae021bd ([kernel.kallsyms])
7fff9542100b path_openat+0x80006ae020fb ([kernel.kallsyms])
7fff953c14fe handle_mm_fault+0x80006ae020ee ([kernel.kallsyms])
7fff95423669 do_filp_open+0x80006ae02099 ([kernel.kallsyms])
7fff95433414 __alloc_fd+0x80006ae02044 ([kernel.kallsyms])
7fff9540ff6e do_sys_open+0x80006ae0212e ([kernel.kallsyms])
7fff9540ff6e do_sys_open+0x80006ae0212e ([kernel.kallsyms])
7fff95850abb system_call_fast_compare_end+0x80006ae0200c ([kernel.kallsyms])
2aecf _nl_load_locale_from_archive+0xffff014b5a92841f (/lib/x86_64-linux-gnu/libc-2.24.so)


I tried to revert a4eb24a49566db77ee999b46603f602a0302f481 and I got
good result :
[...]
sleep 11656/11656 1045318.546436:
7fff9542e5b5 __d_lookup_rcu+0x35 ([kernel.kallsyms])
7fff9541e132 lookup_fast+0x52 ([kernel.kallsyms])
7fff9541eae8 walk_component+0x48 ([kernel.kallsyms])
7fff9541efa2 link_path_walk+0x1b2 ([kernel.kallsyms])
7fff9541c92d path_init+0x1bd ([kernel.kallsyms])
7fff9542100b path_openat+0xfb ([kernel.kallsyms])
7fff953c14fe handle_mm_fault+0xee ([kernel.kallsyms])
7fff95423669 do_filp_open+0x99 ([kernel.kallsyms])
7fff95433414 __alloc_fd+0x44 ([kernel.kallsyms])
7fff9540ff6e do_sys_open+0x12e ([kernel.kallsyms])
7fff9540ff6e do_sys_open+0x12e ([kernel.kallsyms])
7fff95850abb system_call_fast_compare_end+0xc ([kernel.kallsyms])
2aecf _nl_load_locale_from_archive+0x41f (/lib/x86_64-linux-gnu/libc-2.24.so)


Any idea ?


Regards,

Matthieu