diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-07-28 18:33:20 -0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-07-28 18:33:20 -0300 |
commit | 7c48dcfd32b45b69aa8d5e81108fff8c7a2272ed (patch) | |
tree | f4f810f369bbf4c0002f310014d287b99cc50448 /tools/perf/util/evlist.c | |
parent | 674d2d69b14f677a771ceec4b48bfade94a0c5f1 (diff) | |
download | linux-7c48dcfd32b45b69aa8d5e81108fff8c7a2272ed.tar.gz linux-7c48dcfd32b45b69aa8d5e81108fff8c7a2272ed.tar.bz2 linux-7c48dcfd32b45b69aa8d5e81108fff8c7a2272ed.zip |
perf evsel: Introduce constructor for cycles event
That is the default used when no events is specified in tools, separate
it so that simpler tools that need no evlist can use it directly.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-67mwuthscwroz88x9pswcqyv@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/evlist.c')
-rw-r--r-- | tools/perf/util/evlist.c | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 2a40b8e1def7..097b3ed77fdd 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -239,31 +239,13 @@ void perf_event_attr__set_max_precise_ip(struct perf_event_attr *attr) int perf_evlist__add_default(struct perf_evlist *evlist) { - struct perf_event_attr attr = { - .type = PERF_TYPE_HARDWARE, - .config = PERF_COUNT_HW_CPU_CYCLES, - }; - struct perf_evsel *evsel; - - event_attr_init(&attr); + struct perf_evsel *evsel = perf_evsel__new_cycles(); - perf_event_attr__set_max_precise_ip(&attr); - - evsel = perf_evsel__new(&attr); if (evsel == NULL) - goto error; - - /* use asprintf() because free(evsel) assumes name is allocated */ - if (asprintf(&evsel->name, "cycles%.*s", - attr.precise_ip ? attr.precise_ip + 1 : 0, ":ppp") < 0) - goto error_free; + return -ENOMEM; perf_evlist__add(evlist, evsel); return 0; -error_free: - perf_evsel__delete(evsel); -error: - return -ENOMEM; } int perf_evlist__add_dummy(struct perf_evlist *evlist) |