diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-06-12 09:29:12 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-06-19 12:06:20 -0400 |
commit | a446083604fe2bafe0f46b1e95b22f7b06e3a63f (patch) | |
tree | 4dc8ac68478b1d59762ef0658c54b02eccd2757d | |
parent | 335c2f5d25319b208fb8b444e6f3099a806a33bf (diff) |
perf evsel: Handle all event types in perf_evsel__name
Now to convert all event_name users to perf_evsel__name.
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-buuz0j0gynseglxa76r01rdn@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/util/evsel.c | 24 | ||||
-rw-r--r-- | tools/perf/util/parse-events.c | 21 |
2 files changed, 14 insertions, 31 deletions
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 2da047331173..2ddc81271855 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c | |||
@@ -252,6 +252,11 @@ static int perf_evsel__hw_cache_name(struct perf_evsel *evsel, char *bf, size_t | |||
252 | return ret + perf_evsel__add_modifiers(evsel, bf + ret, size - ret); | 252 | return ret + perf_evsel__add_modifiers(evsel, bf + ret, size - ret); |
253 | } | 253 | } |
254 | 254 | ||
255 | static int perf_evsel__tracepoint_name(struct perf_evsel *evsel, char *bf, size_t size) | ||
256 | { | ||
257 | return scnprintf(bf, size, "%s", evsel->name ?: "unknown tracepoint"); | ||
258 | } | ||
259 | |||
255 | int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size) | 260 | int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size) |
256 | { | 261 | { |
257 | int ret; | 262 | int ret; |
@@ -273,20 +278,13 @@ int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size) | |||
273 | ret = perf_evsel__sw_name(evsel, bf, size); | 278 | ret = perf_evsel__sw_name(evsel, bf, size); |
274 | break; | 279 | break; |
275 | 280 | ||
281 | case PERF_TYPE_TRACEPOINT: | ||
282 | ret = perf_evsel__tracepoint_name(evsel, bf, size); | ||
283 | break; | ||
284 | |||
276 | default: | 285 | default: |
277 | /* | 286 | ret = scnprintf(bf, size, "%s", "unknown attr type"); |
278 | * FIXME | 287 | break; |
279 | * | ||
280 | * This is the minimal perf_evsel__name so that we can | ||
281 | * reconstruct event names taking into account event modifiers. | ||
282 | * | ||
283 | * The old event_name uses it now for raw anr hw events, so that | ||
284 | * we don't drag all the parsing stuff into the python binding. | ||
285 | * | ||
286 | * On the next devel cycle the rest of the event naming will be | ||
287 | * brought here. | ||
288 | */ | ||
289 | return 0; | ||
290 | } | 288 | } |
291 | 289 | ||
292 | return ret; | 290 | return ret; |
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 641c4ac8a838..d73690b11242 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c | |||
@@ -203,24 +203,9 @@ const char *event_type(int type) | |||
203 | 203 | ||
204 | const char *event_name(struct perf_evsel *evsel) | 204 | const char *event_name(struct perf_evsel *evsel) |
205 | { | 205 | { |
206 | u64 config = evsel->attr.config; | 206 | static char bf[128]; |
207 | int type = evsel->attr.type; | 207 | perf_evsel__name(evsel, bf, sizeof(bf)); |
208 | 208 | return bf; | |
209 | if (type == PERF_TYPE_RAW || type == PERF_TYPE_HARDWARE || | ||
210 | type == PERF_TYPE_SOFTWARE || type == PERF_TYPE_HW_CACHE) { | ||
211 | /* | ||
212 | * XXX minimal fix, see comment on perf_evsen__name, this static buffer | ||
213 | * will go away together with event_name in the next devel cycle. | ||
214 | */ | ||
215 | static char bf[128]; | ||
216 | perf_evsel__name(evsel, bf, sizeof(bf)); | ||
217 | return bf; | ||
218 | } | ||
219 | |||
220 | if (evsel->name) | ||
221 | return evsel->name; | ||
222 | |||
223 | return __event_name(type, config); | ||
224 | } | 209 | } |
225 | 210 | ||
226 | const char *__event_name(int type, u64 config) | 211 | const char *__event_name(int type, u64 config) |