tracing/doc: Add latency tracer funcgraph example
This add an example about how to use funcgraph with latency tracers. Link: http://lkml.kernel.org/r/20190101154614.8887-6-changbin.du@gmail.com Signed-off-by: Changbin Du <changbin.du@gmail.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
afbab501c6
commit
88d380eb06
@ -1396,6 +1396,57 @@ enabling function tracing, we incur an added overhead. This
|
|||||||
overhead may extend the latency times. But nevertheless, this
|
overhead may extend the latency times. But nevertheless, this
|
||||||
trace has provided some very helpful debugging information.
|
trace has provided some very helpful debugging information.
|
||||||
|
|
||||||
|
If we prefer function graph output instead of function, we can set
|
||||||
|
display-graph option::
|
||||||
|
with echo 1 > options/display-graph
|
||||||
|
|
||||||
|
# tracer: irqsoff
|
||||||
|
#
|
||||||
|
# irqsoff latency trace v1.1.5 on 4.20.0-rc6+
|
||||||
|
# --------------------------------------------------------------------
|
||||||
|
# latency: 3751 us, #274/274, CPU#0 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)
|
||||||
|
# -----------------
|
||||||
|
# | task: bash-1507 (uid:0 nice:0 policy:0 rt_prio:0)
|
||||||
|
# -----------------
|
||||||
|
# => started at: free_debug_processing
|
||||||
|
# => ended at: return_to_handler
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# _-----=> irqs-off
|
||||||
|
# / _----=> need-resched
|
||||||
|
# | / _---=> hardirq/softirq
|
||||||
|
# || / _--=> preempt-depth
|
||||||
|
# ||| /
|
||||||
|
# REL TIME CPU TASK/PID |||| DURATION FUNCTION CALLS
|
||||||
|
# | | | | |||| | | | | | |
|
||||||
|
0 us | 0) bash-1507 | d... | 0.000 us | _raw_spin_lock_irqsave();
|
||||||
|
0 us | 0) bash-1507 | d..1 | 0.378 us | do_raw_spin_trylock();
|
||||||
|
1 us | 0) bash-1507 | d..2 | | set_track() {
|
||||||
|
2 us | 0) bash-1507 | d..2 | | save_stack_trace() {
|
||||||
|
2 us | 0) bash-1507 | d..2 | | __save_stack_trace() {
|
||||||
|
3 us | 0) bash-1507 | d..2 | | __unwind_start() {
|
||||||
|
3 us | 0) bash-1507 | d..2 | | get_stack_info() {
|
||||||
|
3 us | 0) bash-1507 | d..2 | 0.351 us | in_task_stack();
|
||||||
|
4 us | 0) bash-1507 | d..2 | 1.107 us | }
|
||||||
|
[...]
|
||||||
|
3750 us | 0) bash-1507 | d..1 | 0.516 us | do_raw_spin_unlock();
|
||||||
|
3750 us | 0) bash-1507 | d..1 | 0.000 us | _raw_spin_unlock_irqrestore();
|
||||||
|
3764 us | 0) bash-1507 | d..1 | 0.000 us | tracer_hardirqs_on();
|
||||||
|
bash-1507 0d..1 3792us : <stack trace>
|
||||||
|
=> free_debug_processing
|
||||||
|
=> __slab_free
|
||||||
|
=> kmem_cache_free
|
||||||
|
=> vm_area_free
|
||||||
|
=> remove_vma
|
||||||
|
=> exit_mmap
|
||||||
|
=> mmput
|
||||||
|
=> flush_old_exec
|
||||||
|
=> load_elf_binary
|
||||||
|
=> search_binary_handler
|
||||||
|
=> __do_execve_file.isra.32
|
||||||
|
=> __x64_sys_execve
|
||||||
|
=> do_syscall_64
|
||||||
|
=> entry_SYSCALL_64_after_hwframe
|
||||||
|
|
||||||
preemptoff
|
preemptoff
|
||||||
----------
|
----------
|
||||||
|
Loading…
Reference in New Issue
Block a user