diff options
author | Mathieu Poirier <mathieu.poirier@linaro.org> | 2016-09-16 10:44:04 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-09-29 10:16:59 -0400 |
commit | 3541c034d9b953cbd4b961db74630fb6d72e7f37 (patch) | |
tree | 60e2358eb4fca36680c5e69849da92eb9eb375b7 /tools | |
parent | b15d0a4c828eafc82ea68fcf88db6fa93eeb23d7 (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.c | 7 | ||||
-rw-r--r-- | tools/perf/util/evsel.c | 9 | ||||
-rw-r--r-- | tools/perf/util/evsel.h | 3 | ||||
-rw-r--r-- | tools/perf/util/parse-events.c | 4 |
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 | ||
1048 | int perf_evsel__append_filter(struct perf_evsel *evsel, | 1048 | static 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 | ||
1065 | int 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 | |||
1065 | int perf_evsel__enable(struct perf_evsel *evsel) | 1070 | int 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 | ||
237 | int perf_evsel__set_filter(struct perf_evsel *evsel, const char *filter); | 237 | int perf_evsel__set_filter(struct perf_evsel *evsel, const char *filter); |
238 | int perf_evsel__append_filter(struct perf_evsel *evsel, | 238 | int perf_evsel__append_tp_filter(struct perf_evsel *evsel, const char *filter); |
239 | const char *fmt, const char *filter); | ||
240 | int perf_evsel__apply_filter(struct perf_evsel *evsel, int ncpus, int nthreads, | 239 | int perf_evsel__apply_filter(struct perf_evsel *evsel, int ncpus, int nthreads, |
241 | const char *filter); | 240 | const char *filter); |
242 | int perf_evsel__enable(struct perf_evsel *evsel); | 241 | int 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; |