• Namhyung Kim's avatar
    perf ftrace: Add option for function filtering · 78b83e8b
    Namhyung Kim authored
    The -T/--trace-funcs and -N/--notrace-funcs options are to specify
    functions to enable/disable tracing dynamically.
    
    The -G/--graph-funcs and -g/--nograph-funcs options are to set filters
    for function graph tracer.
    
    For example, to trace fault handling functions only:
    
      $ sudo perf ftrace -T *fault hello
       0)               |  __do_page_fault() {
       0)               |    handle_mm_fault() {
       0)   2.117 us    |      __handle_mm_fault();
       0)   3.627 us    |    }
       0)   7.811 us    |  }
       0)               |  __do_page_fault() {
       0)               |    handle_mm_fault() {
       0)   2.014 us    |      __handle_mm_fault();
       0)   2.424 us    |    }
       0)   2.951 us    |  }
       ...
    
    To trace all functions executed in __do_page_fault:
    
      $ sudo perf ftrace -G __do_page_fault hello
       2)               |  __do_page_fault() {
       3)   0.060 us    |    down_read_trylock();
       3)               |    find_vma() {
       3)   0.075 us    |      vmacache_find();
       3)   0.053 us    |      vmacache_update();
       3)   1.246 us    |    }
       3)               |    handle_mm_fault() {
       3)   0.063 us    |      __rcu_read_lock();
       3)   0.056 us    |      mem_cgroup_from_task();
       3)   0.057 us    |      __rcu_read_unlock();
       3)               |      __handle_mm_fault() {
       3)               |        filemap_map_pages() {
       3)   0.058 us    |          __rcu_read_lock();
       3)               |          alloc_set_pte() {
       ...
    
    But don't want to show details in handle_mm_fault:
    
      $ sudo perf ftrace -G __do_page_fault -g handle_mm_fault hello
       3)               |  __do_page_fault() {
       3)   0.049 us    |    down_read_trylock();
       3)               |    find_vma() {
       3)   0.048 us    |      vmacache_find();
       3)   0.041 us    |      vmacache_update();
       3)   0.680 us    |    }
       3)   0.036 us    |    up_read();
       3)   4.547 us    |  } /* __do_page_fault */
       ...
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170618142302.25390-3-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    78b83e8b
perf-ftrace.txt 2.22 KB