mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
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: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: Masami 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: Arnaldo Carvalho de Melo <acme@redhat.com>
48 lines
2.3 KiB
C
48 lines
2.3 KiB
C
#ifndef BUILTIN_H
|
|
#define BUILTIN_H
|
|
|
|
#include "util/util.h"
|
|
#include "util/strbuf.h"
|
|
|
|
extern const char perf_usage_string[];
|
|
extern const char perf_more_info_string[];
|
|
|
|
void list_common_cmds_help(void);
|
|
const char *help_unknown_cmd(const char *cmd);
|
|
void prune_packed_objects(int);
|
|
int read_line_with_nul(char *buf, int size, FILE *file);
|
|
int check_pager_config(const char *cmd);
|
|
|
|
int cmd_annotate(int argc, const char **argv, const char *prefix);
|
|
int cmd_bench(int argc, const char **argv, const char *prefix);
|
|
int cmd_buildid_cache(int argc, const char **argv, const char *prefix);
|
|
int cmd_buildid_list(int argc, const char **argv, const char *prefix);
|
|
int cmd_config(int argc, const char **argv, const char *prefix);
|
|
int cmd_c2c(int argc, const char **argv, const char *prefix);
|
|
int cmd_diff(int argc, const char **argv, const char *prefix);
|
|
int cmd_evlist(int argc, const char **argv, const char *prefix);
|
|
int cmd_help(int argc, const char **argv, const char *prefix);
|
|
int cmd_sched(int argc, const char **argv, const char *prefix);
|
|
int cmd_kallsyms(int argc, const char **argv, const char *prefix);
|
|
int cmd_list(int argc, const char **argv, const char *prefix);
|
|
int cmd_record(int argc, const char **argv, const char *prefix);
|
|
int cmd_report(int argc, const char **argv, const char *prefix);
|
|
int cmd_stat(int argc, const char **argv, const char *prefix);
|
|
int cmd_timechart(int argc, const char **argv, const char *prefix);
|
|
int cmd_top(int argc, const char **argv, const char *prefix);
|
|
int cmd_script(int argc, const char **argv, const char *prefix);
|
|
int cmd_version(int argc, const char **argv, const char *prefix);
|
|
int cmd_probe(int argc, const char **argv, const char *prefix);
|
|
int cmd_kmem(int argc, const char **argv, const char *prefix);
|
|
int cmd_lock(int argc, const char **argv, const char *prefix);
|
|
int cmd_kvm(int argc, const char **argv, const char *prefix);
|
|
int cmd_test(int argc, const char **argv, const char *prefix);
|
|
int cmd_trace(int argc, const char **argv, const char *prefix);
|
|
int cmd_inject(int argc, const char **argv, const char *prefix);
|
|
int cmd_mem(int argc, const char **argv, const char *prefix);
|
|
int cmd_data(int argc, const char **argv, const char *prefix);
|
|
int cmd_ftrace(int argc, const char **argv, const char *prefix);
|
|
|
|
int find_scripts(char **scripts_array, char **scripts_path_array);
|
|
#endif
|