perf evsel: Introduce set_filter method
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 12467ae4e37aab5e263cc9ab6b6909ae0588844c Gitweb: http://git.kernel.org/tip/12467ae4e37aab5e263cc9ab6b6909ae0588844c Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Fri, 3 Jul 2015 17:05:50 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 6 Jul 2015 10:46:36 -0300
perf evsel: Introduce set_filter method
Replaces existing filter string with the one provided.
Cc Adrian Hunter <[email protected]>
Cc Borislav Petkov <[email protected]>
Cc David Ahern <[email protected]>
Cc Don Zickus <[email protected]>
Cc Frederic Weisbecker <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Stephane Eranian <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/util/evsel.c | 13 +++++++++++++ tools/perf/util/evsel.h | 1 + tools/perf/util/parse-events.c | 3 +-- 3 files changed, 15 insertions(+), 2 deletions(-)
tools/perf/util/evsel.c +13 -0
@@ -823,6 +823,19 @@ int perf_evsel__apply_filter(struct perf_evsel *evsel, int ncpus, int nthreads, (void *)filter); } +int perf_evsel__set_filter (struct perf_evsel *evsel,const char *filter) +{ +char *new_filter =strdup (filter); + +if (new_filter !=NULL ) { +free (evsel->filter); + evsel->filter = new_filter; +return 0 ; + } + +return -1 ; +} +int perf_evsel__enable (struct perf_evsel *evsel,int ncpus,int nthreads) { return perf_evsel__run_ioctl(evsel, ncpus, nthreads,
tools/perf/util/evsel.h +1 -0
@@ -182,6 +182,7 @@ void __perf_evsel__reset_sample_bit(struct perf_evsel *evsel,void perf_evsel__set_sample_id (struct perf_evsel *evsel,bool use_sample_identifier); +int perf_evsel__set_filter (struct perf_evsel *evsel,const char *filter);int perf_evsel__apply_filter (struct perf_evsel *evsel,int ncpus,int nthreads,const char *filter);int perf_evsel__enable (struct perf_evsel *evsel,int ncpus,int nthreads);
tools/perf/util/parse-events.c +1 -2
@@ -1177,8 +1177,7 @@ int parse_filter(const struct option *opt, const char *str,return -1 ; } - last->filter =strdup (str); -if (last->filter ==NULL ) { +if (perf_evsel__set_filter (last, str) <0 ) {fprintf (stderr,"not enough memory to hold filter string\n" );return -1 ; }