mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 18:23:53 +08:00
d01f4e8db2
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
|