diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-03-15 10:04:13 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-03-15 10:10:48 -0400 |
commit | 43adec955edd116c3e98c6e2f85fbd63281f5221 (patch) | |
tree | 9cc67758e4c88e7733d469698995e4561d187630 /tools/perf/builtin-evlist.c | |
parent | 1424dc96807909438282663079adc7f27c10b4a5 (diff) |
perf evlist: New command to list the names of events present in a perf.data file
[root@emilia ~]# perf record -a -e sched:* -e timer:timer* sleep 5
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.172 MB perf.data (~7530 samples) ]
[root@emilia ~]# perf evlist
sched:sched_kthread_stop
sched:sched_kthread_stop_ret
sched:sched_wakeup
sched:sched_wakeup_new
sched:sched_switch
sched:sched_migrate_task
sched:sched_process_free
sched:sched_process_exit
sched:sched_wait_task
sched:sched_process_wait
sched:sched_process_fork
sched:sched_stat_wait
sched:sched_stat_sleep
sched:sched_stat_iowait
sched:sched_stat_runtime
sched:sched_pi_setprio
timer:timer_init
timer:timer_start
timer:timer_expire_entry
timer:timer_expire_exit
timer:timer_cancel
[root@emilia ~]#
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-evlist.c')
-rw-r--r-- | tools/perf/builtin-evlist.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/perf/builtin-evlist.c b/tools/perf/builtin-evlist.c new file mode 100644 index 000000000000..4c5e9e04a41f --- /dev/null +++ b/tools/perf/builtin-evlist.c | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | * Builtin evlist command: Show the list of event selectors present | ||
3 | * in a perf.data file. | ||
4 | */ | ||
5 | #include "builtin.h" | ||
6 | |||
7 | #include "util/util.h" | ||
8 | |||
9 | #include <linux/list.h> | ||
10 | |||
11 | #include "perf.h" | ||
12 | #include "util/evlist.h" | ||
13 | #include "util/evsel.h" | ||
14 | #include "util/parse-events.h" | ||
15 | #include "util/parse-options.h" | ||
16 | #include "util/session.h" | ||
17 | |||
18 | static char const *input_name = "perf.data"; | ||
19 | |||
20 | static int __cmd_evlist(void) | ||
21 | { | ||
22 | struct perf_session *session; | ||
23 | struct perf_evsel *pos; | ||
24 | |||
25 | session = perf_session__new(input_name, O_RDONLY, 0, false, NULL); | ||
26 | if (session == NULL) | ||
27 | return -ENOMEM; | ||
28 | |||
29 | list_for_each_entry(pos, &session->evlist->entries, node) | ||
30 | printf("%s\n", event_name(pos)); | ||
31 | |||
32 | perf_session__delete(session); | ||
33 | return 0; | ||
34 | } | ||
35 | |||
36 | static const char * const evlist_usage[] = { | ||
37 | "perf evlist [<options>]", | ||
38 | NULL | ||
39 | }; | ||
40 | |||
41 | static const struct option options[] = { | ||
42 | OPT_STRING('i', "input", &input_name, "file", | ||
43 | "input file name"), | ||
44 | OPT_END() | ||
45 | }; | ||
46 | |||
47 | int cmd_evlist(int argc, const char **argv, const char *prefix __used) | ||
48 | { | ||
49 | argc = parse_options(argc, argv, options, evlist_usage, 0); | ||
50 | if (argc) | ||
51 | usage_with_options(evlist_usage, options); | ||
52 | |||
53 | return __cmd_evlist(); | ||
54 | } | ||