mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-29 18:11:20 +00:00
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>
This commit is contained in:
parent
1424dc9680
commit
43adec955e
6 changed files with 84 additions and 0 deletions
26
tools/perf/Documentation/perf-evlist.txt
Normal file
26
tools/perf/Documentation/perf-evlist.txt
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
perf-evlist(1)
|
||||||
|
==============
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
perf-evlist - List the event names in a perf.data file
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
--------
|
||||||
|
[verse]
|
||||||
|
'perf evlist <options>'
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
This command displays the names of events sampled in a perf.data file.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
-------
|
||||||
|
-i::
|
||||||
|
--input=::
|
||||||
|
Input file name. (default: perf.data)
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
--------
|
||||||
|
linkperf:perf-record[1], linkperf:perf-list[1],
|
||||||
|
linkperf:perf-report[1]
|
|
@ -338,6 +338,7 @@ endif
|
||||||
BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy.o
|
BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy.o
|
||||||
|
|
||||||
BUILTIN_OBJS += $(OUTPUT)builtin-diff.o
|
BUILTIN_OBJS += $(OUTPUT)builtin-diff.o
|
||||||
|
BUILTIN_OBJS += $(OUTPUT)builtin-evlist.o
|
||||||
BUILTIN_OBJS += $(OUTPUT)builtin-help.o
|
BUILTIN_OBJS += $(OUTPUT)builtin-help.o
|
||||||
BUILTIN_OBJS += $(OUTPUT)builtin-sched.o
|
BUILTIN_OBJS += $(OUTPUT)builtin-sched.o
|
||||||
BUILTIN_OBJS += $(OUTPUT)builtin-buildid-list.o
|
BUILTIN_OBJS += $(OUTPUT)builtin-buildid-list.o
|
||||||
|
|
54
tools/perf/builtin-evlist.c
Normal file
54
tools/perf/builtin-evlist.c
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
* Builtin evlist command: Show the list of event selectors present
|
||||||
|
* in a perf.data file.
|
||||||
|
*/
|
||||||
|
#include "builtin.h"
|
||||||
|
|
||||||
|
#include "util/util.h"
|
||||||
|
|
||||||
|
#include <linux/list.h>
|
||||||
|
|
||||||
|
#include "perf.h"
|
||||||
|
#include "util/evlist.h"
|
||||||
|
#include "util/evsel.h"
|
||||||
|
#include "util/parse-events.h"
|
||||||
|
#include "util/parse-options.h"
|
||||||
|
#include "util/session.h"
|
||||||
|
|
||||||
|
static char const *input_name = "perf.data";
|
||||||
|
|
||||||
|
static int __cmd_evlist(void)
|
||||||
|
{
|
||||||
|
struct perf_session *session;
|
||||||
|
struct perf_evsel *pos;
|
||||||
|
|
||||||
|
session = perf_session__new(input_name, O_RDONLY, 0, false, NULL);
|
||||||
|
if (session == NULL)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
list_for_each_entry(pos, &session->evlist->entries, node)
|
||||||
|
printf("%s\n", event_name(pos));
|
||||||
|
|
||||||
|
perf_session__delete(session);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char * const evlist_usage[] = {
|
||||||
|
"perf evlist [<options>]",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct option options[] = {
|
||||||
|
OPT_STRING('i', "input", &input_name, "file",
|
||||||
|
"input file name"),
|
||||||
|
OPT_END()
|
||||||
|
};
|
||||||
|
|
||||||
|
int cmd_evlist(int argc, const char **argv, const char *prefix __used)
|
||||||
|
{
|
||||||
|
argc = parse_options(argc, argv, options, evlist_usage, 0);
|
||||||
|
if (argc)
|
||||||
|
usage_with_options(evlist_usage, options);
|
||||||
|
|
||||||
|
return __cmd_evlist();
|
||||||
|
}
|
|
@ -19,6 +19,7 @@ extern int cmd_bench(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_buildid_cache(int argc, const char **argv, const char *prefix);
|
extern int cmd_buildid_cache(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_buildid_list(int argc, const char **argv, const char *prefix);
|
extern int cmd_buildid_list(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_diff(int argc, const char **argv, const char *prefix);
|
extern int cmd_diff(int argc, const char **argv, const char *prefix);
|
||||||
|
extern int cmd_evlist(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_help(int argc, const char **argv, const char *prefix);
|
extern int cmd_help(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_sched(int argc, const char **argv, const char *prefix);
|
extern int cmd_sched(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_list(int argc, const char **argv, const char *prefix);
|
extern int cmd_list(int argc, const char **argv, const char *prefix);
|
||||||
|
|
|
@ -8,6 +8,7 @@ perf-bench mainporcelain common
|
||||||
perf-buildid-cache mainporcelain common
|
perf-buildid-cache mainporcelain common
|
||||||
perf-buildid-list mainporcelain common
|
perf-buildid-list mainporcelain common
|
||||||
perf-diff mainporcelain common
|
perf-diff mainporcelain common
|
||||||
|
perf-evlist mainporcelain common
|
||||||
perf-inject mainporcelain common
|
perf-inject mainporcelain common
|
||||||
perf-list mainporcelain common
|
perf-list mainporcelain common
|
||||||
perf-sched mainporcelain common
|
perf-sched mainporcelain common
|
||||||
|
|
|
@ -313,6 +313,7 @@ static void handle_internal_command(int argc, const char **argv)
|
||||||
{ "buildid-cache", cmd_buildid_cache, 0 },
|
{ "buildid-cache", cmd_buildid_cache, 0 },
|
||||||
{ "buildid-list", cmd_buildid_list, 0 },
|
{ "buildid-list", cmd_buildid_list, 0 },
|
||||||
{ "diff", cmd_diff, 0 },
|
{ "diff", cmd_diff, 0 },
|
||||||
|
{ "evlist", cmd_evlist, 0 },
|
||||||
{ "help", cmd_help, 0 },
|
{ "help", cmd_help, 0 },
|
||||||
{ "list", cmd_list, 0 },
|
{ "list", cmd_list, 0 },
|
||||||
{ "record", cmd_record, 0 },
|
{ "record", cmd_record, 0 },
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue