perf evlist: Allow asking for max precise_ip in add_default()
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: db918acb356b8770a0fafbe96743031a56b91af6 Gitweb: http://git.kernel.org/tip/db918acb356b8770a0fafbe96743031a56b91af6 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Mon, 3 Jul 2017 13:10:20 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 18 Jul 2017 23:14:12 -0300
perf evlist: Allow asking for max precise_ip in add_default()
There are cases where we want to leave attr.precise_ip as zero, such as when using 'perf record --no-samples', where this would make the kernel return -EINVAL.
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/util/evlist.c | 4 ++-- tools/perf/util/evlist.h | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-)
tools/perf/util/evlist.c +2 -2
@@ -242,9 +242,9 @@ void perf_event_attr__set_max_precise_ip(struct perf_event_attr *attr) } } -int perf_evlist__add_default (struct perf_evlist *evlist) +int __perf_evlist__add_default (struct perf_evlist *evlist,bool precise) { -struct perf_evsel *evsel =perf_evsel__new_cycles (true); +struct perf_evsel *evsel =perf_evsel__new_cycles (precise);if (evsel ==NULL )return -ENOMEM ;
tools/perf/util/evlist.h +8 -1
@@ -115,7 +115,14 @@ void perf_evlist__delete(struct perf_evlist *evlist);void perf_evlist__add (struct perf_evlist *evlist,struct perf_evsel *entry);void perf_evlist__remove (struct perf_evlist *evlist,struct perf_evsel *evsel); -int perf_evlist__add_default (struct perf_evlist *evlist); + +int __perf_evlist__add_default (struct perf_evlist *evlist,bool precise); + +static inline int perf_evlist__add_default (struct perf_evlist *evlist) +{ +return __perf_evlist__add_default (evlist, true); +} +int __perf_evlist__add_default_attrs (struct perf_evlist *evlist,struct perf_event_attr *attrs,size_t nr_attrs);