1. 26 1月, 2017 2 次提交
    • A
      perf ftrace: Make 'function_graph' be the default tracer · ec347870
      Arnaldo Carvalho de Melo 提交于
      So that we can suppress the '-t function_graph' and get a more compact command
      line:
      
        # perf ftrace usleep 123456 | grep raw_spin_lock | sort -k2 -nr | head -5
        2)   0.555 us    |                _raw_spin_lock();
        2)   0.516 us    |          _raw_spin_lock();
        2)   0.410 us    |          _raw_spin_lock_irq();
        2)   0.374 us    |                        _raw_spin_lock_irqsave();
        #
      Tested-by: NMasami Hiramatsu <mhiramat@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jeremy Eder <jeder@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-ss9xgx5htpxcv86x42pnh3m6@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      ec347870
    • N
      perf ftrace: Introduce new 'ftrace' tool · d01f4e8d
      Namhyung Kim 提交于
      The 'perf ftrace' command is a simple wrapper of kernel's ftrace
      functionality.  It only supports single thread tracing currently and
      just reads trace_pipe in text and then write it to stdout.
      
      Committer notes:
      
      Testing it:
      
        # perf ftrace -f function_graph usleep 123456
        <SNIP>
        2)               |  SyS_nanosleep() {
        2)               |    _copy_from_user() {
        <SNIP>
        2)   0.900 us    |      }
        2)   1.354 us    |    }
        2)               |    hrtimer_nanosleep() {
        2)   0.062 us    |      __hrtimer_init();
        2)               |      do_nanosleep() {
        2)               |        hrtimer_start_range_ns() {
        <SNIP>
        2)   5.025 us    |        }
        2)               |        schedule() {
        2)   0.125 us    |          rcu_note_context_switch();
        2)   0.057 us    |          _raw_spin_lock();
        2)               |          deactivate_task() {
        2)   0.369 us    |            update_rq_clock.part.77();
        2)               |            dequeue_task_fair() {
        <SNIP>
        2) + 22.453 us   |            }
        2) + 23.736 us   |          }
        2)               |          pick_next_task_fair() {
        <SNIP>
        2) + 47.167 us   |          }
        2)               |          pick_next_task_idle() {
        <SNIP>
        2)   4.462 us    |          }
        ------------------------------------------
        2)  usleep-20387  =>    <idle>-0
        ------------------------------------------
      
        2)   0.806 us    |  switch_mm_irqs_off();
        ------------------------------------------
        2)    <idle>-0    =>  usleep-20387
        ------------------------------------------
      
        2)   0.151 us    |          finish_task_switch();
        2) @ 123597.2 us |        }
        2)   0.037 us    |        _cond_resched();
        2)               |        hrtimer_try_to_cancel() {
        2)   0.064 us    |          hrtimer_active();
        2)   0.353 us    |        }
        2) @ 123605.3 us |      }
        2) @ 123606.2 us |    }
        2) @ 123608.3 us |  } /* SyS_nanosleep */
        2)               |  __do_page_fault() {
       <SNIP>
      Signed-off-by: NNamhyung Kim <namhyung@kernel.org>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Tested-by: NMasami Hiramatsu <mhiramat@kernel.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jeremy Eder <jeder@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>,
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/n/tip-r1hgmsj4dxny8arn3o9mw512@git.kernel.org
      [ Various foward port fixes, add man page ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      d01f4e8d