Home
last modified time | relevance | path

Searched hist:"566 a08859f63a33746e25246c5cda0f52528d2e4" (Results 1 – 2 of 2) sorted by relevance

/linux/tools/perf/Documentation/
H A Dperf-trace.txtdiff 566a08859f63a33746e25246c5cda0f52528d2e4 Fri Apr 08 13:34:15 CEST 2016 Milian Wolff <milian.wolff@kdab.com> perf trace: Add support for printing call chains on sys_exit events.

Now, one can print the call chain for every encountered sys_exit event,
e.g.:

$ perf trace -e nanosleep --call-graph dwarf path/to/ex_sleep
1005.757 (1000.090 ms): ex_sleep/13167 nanosleep(...) = 0
syscall_slow_exit_work ([kernel.kallsyms])
syscall_return_slowpath ([kernel.kallsyms])
int_ret_from_sys_call ([kernel.kallsyms])
__nanosleep (/usr/lib/libc-2.23.so)
[unknown] (/usr/lib/libQt5Core.so.5.6.0)
QThread::sleep (/usr/lib/libQt5Core.so.5.6.0)
main (path/to/ex_sleep)
__libc_start_main (/usr/lib/libc-2.23.so)
_start (path/to/ex_sleep)

Note that it is advised to increase the number of mmap pages to prevent
event losses when using this new feature. Often, adding `-m 10M` to the
`perf trace` invocation is enough.

This feature is also available in strace when built with libunwind via
`strace -k`. Performance wise, this solution is much better:

$ time find path/to/linux &> /dev/null

real 0m0.051s
user 0m0.013s
sys 0m0.037s

$ time perf trace -m 800M --call-graph dwarf find path/to/linux &> /dev/null

real 0m2.624s
user 0m1.203s
sys 0m1.333s

$ time strace -k find path/to/linux &> /dev/null

real 0m35.398s
user 0m10.403s
sys 0m23.173s

Note that it is currently not possible to configure the print output.
Adding such a feature, similar to what is available in `perf script` via
its `--fields` knob can be added later on.

Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
LPU-Reference: 1460115255-17648-1-git-send-email-milian.wolff@kdab.com
[ Split from a larger patch, do not print the IP, left align,
remove dup call symbol__init(), added man page entry ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
/linux/tools/perf/
H A Dbuiltin-trace.cdiff 566a08859f63a33746e25246c5cda0f52528d2e4 Fri Apr 08 13:34:15 CEST 2016 Milian Wolff <milian.wolff@kdab.com> perf trace: Add support for printing call chains on sys_exit events.

Now, one can print the call chain for every encountered sys_exit event,
e.g.:

$ perf trace -e nanosleep --call-graph dwarf path/to/ex_sleep
1005.757 (1000.090 ms): ex_sleep/13167 nanosleep(...) = 0
syscall_slow_exit_work ([kernel.kallsyms])
syscall_return_slowpath ([kernel.kallsyms])
int_ret_from_sys_call ([kernel.kallsyms])
__nanosleep (/usr/lib/libc-2.23.so)
[unknown] (/usr/lib/libQt5Core.so.5.6.0)
QThread::sleep (/usr/lib/libQt5Core.so.5.6.0)
main (path/to/ex_sleep)
__libc_start_main (/usr/lib/libc-2.23.so)
_start (path/to/ex_sleep)

Note that it is advised to increase the number of mmap pages to prevent
event losses when using this new feature. Often, adding `-m 10M` to the
`perf trace` invocation is enough.

This feature is also available in strace when built with libunwind via
`strace -k`. Performance wise, this solution is much better:

$ time find path/to/linux &> /dev/null

real 0m0.051s
user 0m0.013s
sys 0m0.037s

$ time perf trace -m 800M --call-graph dwarf find path/to/linux &> /dev/null

real 0m2.624s
user 0m1.203s
sys 0m1.333s

$ time strace -k find path/to/linux &> /dev/null

real 0m35.398s
user 0m10.403s
sys 0m23.173s

Note that it is currently not possible to configure the print output.
Adding such a feature, similar to what is available in `perf script` via
its `--fields` knob can be added later on.

Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
LPU-Reference: 1460115255-17648-1-git-send-email-milian.wolff@kdab.com
[ Split from a larger patch, do not print the IP, left align,
remove dup call symbol__init(), added man page entry ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>