• Changbin Du's avatar
    tracing: Fix missing return symbol in function_graph output · 54f1da1f
    Changbin Du authored
    commit 1fe4293f upstream.
    
    The function_graph tracer does not show the interrupt return marker for the
    leaf entry. On leaf entries, we see an unbalanced interrupt marker (the
    interrupt was entered, but nevern left).
    
    Before:
     1)               |  SyS_write() {
     1)               |    __fdget_pos() {
     1)   0.061 us    |      __fget_light();
     1)   0.289 us    |    }
     1)               |    vfs_write() {
     1)   0.049 us    |      rw_verify_area();
     1) + 15.424 us   |      __vfs_write();
     1)   ==========> |
     1)   6.003 us    |      smp_apic_timer_interrupt();
     1)   0.055 us    |      __fsnotify_parent();
     1)   0.073 us    |      fsnotify();
     1) + 23.665 us   |    }
     1) + 24.501 us   |  }
    
    After:
     0)               |  SyS_write() {
     0)               |    __fdget_pos() {
     0)   0.052 us    |      __fget_light();
     0)   0.328 us    |    }
     0)               |    vfs_write() {
     0)   0.057 us    |      rw_verify_area();
     0)               |      __vfs_write() {
     0)   ==========> |
     0)   8.548 us    |      smp_apic_timer_interrupt();
     0)   <========== |
     0) + 36.507 us   |      } /* __vfs_write */
     0)   0.049 us    |      __fsnotify_parent();
     0)   0.066 us    |      fsnotify();
     0) + 50.064 us   |    }
     0) + 50.952 us   |  }
    
    Link: http://lkml.kernel.org/r/1517413729-20411-1-git-send-email-changbin.du@intel.com
    
    Cc: stable@vger.kernel.org
    Fixes: f8b755ac ("tracing/function-graph-tracer: Output arrows signal on hardirq call/return")
    Signed-off-by: default avatarChangbin Du <changbin.du@intel.com>
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    54f1da1f
Name
Last commit
Last update
..
Kconfig Loading commit data...
Makefile Loading commit data...
blktrace.c Loading commit data...
bpf_trace.c Loading commit data...
ftrace.c Loading commit data...
power-traces.c Loading commit data...
ring_buffer.c Loading commit data...
ring_buffer_benchmark.c Loading commit data...
rpm-traces.c Loading commit data...
trace.c Loading commit data...
trace.h Loading commit data...
trace_benchmark.c Loading commit data...
trace_benchmark.h Loading commit data...
trace_branch.c Loading commit data...
trace_clock.c Loading commit data...
trace_entries.h Loading commit data...
trace_event_perf.c Loading commit data...
trace_events.c Loading commit data...
trace_events_filter.c Loading commit data...
trace_events_filter_test.h Loading commit data...
trace_events_hist.c Loading commit data...
trace_events_trigger.c Loading commit data...
trace_export.c Loading commit data...
trace_functions.c Loading commit data...
trace_functions_graph.c Loading commit data...
trace_hwlat.c Loading commit data...
trace_irqsoff.c Loading commit data...
trace_kdb.c Loading commit data...
trace_kprobe.c Loading commit data...
trace_mmiotrace.c Loading commit data...
trace_nop.c Loading commit data...
trace_output.c Loading commit data...
trace_output.h Loading commit data...
trace_printk.c Loading commit data...
trace_probe.c Loading commit data...
trace_probe.h Loading commit data...
trace_sched_switch.c Loading commit data...
trace_sched_wakeup.c Loading commit data...
trace_selftest.c Loading commit data...
trace_selftest_dynamic.c Loading commit data...
trace_seq.c Loading commit data...
trace_stack.c Loading commit data...
trace_stat.c Loading commit data...
trace_stat.h Loading commit data...
trace_syscalls.c Loading commit data...
trace_uprobe.c Loading commit data...
tracing_map.c Loading commit data...
tracing_map.h Loading commit data...