aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMathieu Poirier <mathieu.poirier@linaro.org>2016-09-16 10:44:04 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-09-29 10:16:59 -0400
commit3541c034d9b953cbd4b961db74630fb6d72e7f37 (patch)
tree60e2358eb4fca36680c5e69849da92eb9eb375b7 /tools
parentb15d0a4c828eafc82ea68fcf88db6fa93eeb23d7 (diff)
perf evsel: New tracepoint specific function
Making function perf_evsel__append_filter() static and introducing a new tracepoint specific function to append filters. That way we eliminate redundant code and avoid formatting mistake. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1474037045-31730-3-git-send-email-mathieu.poirier@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/builtin-trace.c7
-rw-r--r--tools/perf/util/evsel.c9
-rw-r--r--tools/perf/util/evsel.h3
-rw-r--r--tools/perf/util/parse-events.c4
4 files changed, 13 insertions, 10 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index e04ba9d852d4..c298bd3e1d90 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -2151,11 +2151,10 @@ static int trace__set_ev_qualifier_filter(struct trace *trace)
2151 if (filter == NULL) 2151 if (filter == NULL)
2152 goto out_enomem; 2152 goto out_enomem;
2153 2153
2154 if (!perf_evsel__append_filter(trace->syscalls.events.sys_enter, 2154 if (!perf_evsel__append_tp_filter(trace->syscalls.events.sys_enter,
2155 "(%s) && (%s)", filter)) { 2155 filter)) {
2156 sys_exit = trace->syscalls.events.sys_exit; 2156 sys_exit = trace->syscalls.events.sys_exit;
2157 err = perf_evsel__append_filter(sys_exit, 2157 err = perf_evsel__append_tp_filter(sys_exit, filter);
2158 "(%s) && (%s)", filter);
2159 } 2158 }
2160 2159
2161 free(filter); 2160 free(filter);
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 4f327b522e5c..3b4e7c452e43 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1045,8 +1045,8 @@ int perf_evsel__set_filter(struct perf_evsel *evsel, const char *filter)
1045 return -1; 1045 return -1;
1046} 1046}
1047 1047
1048int perf_evsel__append_filter(struct perf_evsel *evsel, 1048static int perf_evsel__append_filter(struct perf_evsel *evsel,
1049 const char *fmt, const char *filter) 1049 const char *fmt, const char *filter)
1050{ 1050{
1051 char *new_filter; 1051 char *new_filter;
1052 1052
@@ -1062,6 +1062,11 @@ int perf_evsel__append_filter(struct perf_evsel *evsel,
1062 return -1; 1062 return -1;
1063} 1063}
1064 1064
1065int perf_evsel__append_tp_filter(struct perf_evsel *evsel, const char *filter)
1066{
1067 return perf_evsel__append_filter(evsel, "(%s) && (%s)", filter);
1068}
1069
1065int perf_evsel__enable(struct perf_evsel *evsel) 1070int perf_evsel__enable(struct perf_evsel *evsel)
1066{ 1071{
1067 int nthreads = thread_map__nr(evsel->threads); 1072 int nthreads = thread_map__nr(evsel->threads);
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 7ef960298b3d..1f8c48f87f7d 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -235,8 +235,7 @@ void perf_evsel__set_sample_id(struct perf_evsel *evsel,
235 bool use_sample_identifier); 235 bool use_sample_identifier);
236 236
237int perf_evsel__set_filter(struct perf_evsel *evsel, const char *filter); 237int perf_evsel__set_filter(struct perf_evsel *evsel, const char *filter);
238int perf_evsel__append_filter(struct perf_evsel *evsel, 238int perf_evsel__append_tp_filter(struct perf_evsel *evsel, const char *filter);
239 const char *fmt, const char *filter);
240int perf_evsel__apply_filter(struct perf_evsel *evsel, int ncpus, int nthreads, 239int perf_evsel__apply_filter(struct perf_evsel *evsel, int ncpus, int nthreads,
241 const char *filter); 240 const char *filter);
242int perf_evsel__enable(struct perf_evsel *evsel); 241int perf_evsel__enable(struct perf_evsel *evsel);
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index b14784c765eb..16bf09cc3e8d 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -1767,7 +1767,7 @@ static int set_filter(struct perf_evsel *evsel, const void *arg)
1767 return -1; 1767 return -1;
1768 } 1768 }
1769 1769
1770 if (perf_evsel__append_filter(evsel, "(%s) && (%s)", str) < 0) { 1770 if (perf_evsel__append_tp_filter(evsel, str) < 0) {
1771 fprintf(stderr, 1771 fprintf(stderr,
1772 "not enough memory to hold filter string\n"); 1772 "not enough memory to hold filter string\n");
1773 return -1; 1773 return -1;
@@ -1798,7 +1798,7 @@ static int add_exclude_perf_filter(struct perf_evsel *evsel,
1798 1798
1799 snprintf(new_filter, sizeof(new_filter), "common_pid != %d", getpid()); 1799 snprintf(new_filter, sizeof(new_filter), "common_pid != %d", getpid());
1800 1800
1801 if (perf_evsel__append_filter(evsel, "(%s) && (%s)", new_filter) < 0) { 1801 if (perf_evsel__append_tp_filter(evsel, new_filter) < 0) {
1802 fprintf(stderr, 1802 fprintf(stderr,
1803 "not enough memory to hold filter string\n"); 1803 "not enough memory to hold filter string\n");
1804 return -1; 1804 return -1;