diff options
Diffstat (limited to 'tools/perf/ui/browsers/hists.c')
| -rw-r--r-- | tools/perf/ui/browsers/hists.c | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index 167f7701f94e..20ccd57753f7 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c @@ -1189,6 +1189,21 @@ static int hists__browser_title(struct hists *hists, char *bf, size_t size,  	const struct thread *thread = hists->thread_filter;  	unsigned long nr_samples = hists->stats.nr_events[PERF_RECORD_SAMPLE];  	u64 nr_events = hists->stats.total_period; +	struct perf_evsel *evsel = hists_to_evsel(hists); +	char buf[512]; +	size_t buflen = sizeof(buf); + +	if (symbol_conf.event_group && evsel->nr_members > 1) { +		struct perf_evsel *pos; + +		perf_evsel__group_desc(evsel, buf, buflen); +		ev_name = buf; + +		for_each_group_member(pos, evsel) { +			nr_samples += pos->hists.stats.nr_events[PERF_RECORD_SAMPLE]; +			nr_events += pos->hists.stats.total_period; +		} +	}  	nr_samples = convert_unit(nr_samples, &unit);  	printed = scnprintf(bf, size, @@ -1585,6 +1600,16 @@ static void perf_evsel_menu__write(struct ui_browser *browser,  	ui_browser__set_color(browser, current_entry ? HE_COLORSET_SELECTED :  						       HE_COLORSET_NORMAL); +	if (symbol_conf.event_group && evsel->nr_members > 1) { +		struct perf_evsel *pos; + +		ev_name = perf_evsel__group_name(evsel); + +		for_each_group_member(pos, evsel) { +			nr_events += pos->hists.stats.nr_events[PERF_RECORD_SAMPLE]; +		} +	} +  	nr_events = convert_unit(nr_events, &unit);  	printed = scnprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events,  			   unit, unit == ' ' ? "" : " ", ev_name);  | 
