aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/ui/browsers/hists.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/ui/browsers/hists.c')
-rw-r--r--tools/perf/ui/browsers/hists.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index f556e5f6388b..482f0517b61e 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -1367,7 +1367,7 @@ static void perf_evsel_menu__write(struct ui_browser *browser,
1367 struct perf_evsel *evsel = list_entry(entry, struct perf_evsel, node); 1367 struct perf_evsel *evsel = list_entry(entry, struct perf_evsel, node);
1368 bool current_entry = ui_browser__is_current_entry(browser, row); 1368 bool current_entry = ui_browser__is_current_entry(browser, row);
1369 unsigned long nr_events = evsel->hists.stats.nr_events[PERF_RECORD_SAMPLE]; 1369 unsigned long nr_events = evsel->hists.stats.nr_events[PERF_RECORD_SAMPLE];
1370 const char *ev_name = event_name(evsel); 1370 const char *ev_name = perf_evsel__name(evsel);
1371 char bf[256], unit; 1371 char bf[256], unit;
1372 const char *warn = " "; 1372 const char *warn = " ";
1373 size_t printed; 1373 size_t printed;
@@ -1435,7 +1435,7 @@ browse_hists:
1435 */ 1435 */
1436 if (timer) 1436 if (timer)
1437 timer(arg); 1437 timer(arg);
1438 ev_name = event_name(pos); 1438 ev_name = perf_evsel__name(pos);
1439 key = perf_evsel__hists_browse(pos, nr_events, help, 1439 key = perf_evsel__hists_browse(pos, nr_events, help,
1440 ev_name, true, timer, 1440 ev_name, true, timer,
1441 arg, delay_secs); 1441 arg, delay_secs);
@@ -1504,17 +1504,11 @@ static int __perf_evlist__tui_browse_hists(struct perf_evlist *evlist,
1504 ui_helpline__push("Press ESC to exit"); 1504 ui_helpline__push("Press ESC to exit");
1505 1505
1506 list_for_each_entry(pos, &evlist->entries, node) { 1506 list_for_each_entry(pos, &evlist->entries, node) {
1507 const char *ev_name = event_name(pos); 1507 const char *ev_name = perf_evsel__name(pos);
1508 size_t line_len = strlen(ev_name) + 7; 1508 size_t line_len = strlen(ev_name) + 7;
1509 1509
1510 if (menu.b.width < line_len) 1510 if (menu.b.width < line_len)
1511 menu.b.width = line_len; 1511 menu.b.width = line_len;
1512 /*
1513 * Cache the evsel name, tracepoints have a _high_ cost per
1514 * event_name() call.
1515 */
1516 if (pos->name == NULL)
1517 pos->name = strdup(ev_name);
1518 } 1512 }
1519 1513
1520 return perf_evsel_menu__run(&menu, evlist->nr_entries, help, timer, 1514 return perf_evsel_menu__run(&menu, evlist->nr_entries, help, timer,
@@ -1525,11 +1519,10 @@ int perf_evlist__tui_browse_hists(struct perf_evlist *evlist, const char *help,
1525 void(*timer)(void *arg), void *arg, 1519 void(*timer)(void *arg), void *arg,
1526 int delay_secs) 1520 int delay_secs)
1527{ 1521{
1528
1529 if (evlist->nr_entries == 1) { 1522 if (evlist->nr_entries == 1) {
1530 struct perf_evsel *first = list_entry(evlist->entries.next, 1523 struct perf_evsel *first = list_entry(evlist->entries.next,
1531 struct perf_evsel, node); 1524 struct perf_evsel, node);
1532 const char *ev_name = event_name(first); 1525 const char *ev_name = perf_evsel__name(first);
1533 return perf_evsel__hists_browse(first, evlist->nr_entries, help, 1526 return perf_evsel__hists_browse(first, evlist->nr_entries, help,
1534 ev_name, false, timer, arg, 1527 ev_name, false, timer, arg,
1535 delay_secs); 1528 delay_secs);