aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/evsel.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/evsel.c')
-rw-r--r--tools/perf/util/evsel.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 2ddc81271855..236bdf25db6d 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -252,42 +252,42 @@ 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) 255const char *perf_evsel__name(struct perf_evsel *evsel)
256{ 256{
257 return scnprintf(bf, size, "%s", evsel->name ?: "unknown tracepoint"); 257 char bf[128];
258}
259 258
260int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size) 259 if (evsel->name)
261{ 260 return evsel->name;
262 int ret;
263 261
264 switch (evsel->attr.type) { 262 switch (evsel->attr.type) {
265 case PERF_TYPE_RAW: 263 case PERF_TYPE_RAW:
266 ret = scnprintf(bf, size, "raw 0x%" PRIx64, evsel->attr.config); 264 scnprintf(bf, sizeof(bf), "raw 0x%" PRIx64, evsel->attr.config);
267 break; 265 break;
268 266
269 case PERF_TYPE_HARDWARE: 267 case PERF_TYPE_HARDWARE:
270 ret = perf_evsel__hw_name(evsel, bf, size); 268 perf_evsel__hw_name(evsel, bf, sizeof(bf));
271 break; 269 break;
272 270
273 case PERF_TYPE_HW_CACHE: 271 case PERF_TYPE_HW_CACHE:
274 ret = perf_evsel__hw_cache_name(evsel, bf, size); 272 perf_evsel__hw_cache_name(evsel, bf, sizeof(bf));
275 break; 273 break;
276 274
277 case PERF_TYPE_SOFTWARE: 275 case PERF_TYPE_SOFTWARE:
278 ret = perf_evsel__sw_name(evsel, bf, size); 276 perf_evsel__sw_name(evsel, bf, sizeof(bf));
279 break; 277 break;
280 278
281 case PERF_TYPE_TRACEPOINT: 279 case PERF_TYPE_TRACEPOINT:
282 ret = perf_evsel__tracepoint_name(evsel, bf, size); 280 scnprintf(bf, sizeof(bf), "%s", "unknown tracepoint");
283 break; 281 break;
284 282
285 default: 283 default:
286 ret = scnprintf(bf, size, "%s", "unknown attr type"); 284 scnprintf(bf, sizeof(bf), "%s", "unknown attr type");
287 break; 285 break;
288 } 286 }
289 287
290 return ret; 288 evsel->name = strdup(bf);
289
290 return evsel->name ?: "unknown";
291} 291}
292 292
293void perf_evsel__config(struct perf_evsel *evsel, struct perf_record_opts *opts, 293void perf_evsel__config(struct perf_evsel *evsel, struct perf_record_opts *opts,