aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/perf/util/evsel.c24
-rw-r--r--tools/perf/util/parse-events.c21
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
255static 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
255int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size) 260int 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
204const char *event_name(struct perf_evsel *evsel) 204const 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
226const char *__event_name(int type, u64 config) 211const char *__event_name(int type, u64 config)