Skip to contentSkip to conversation

perf top: Lift restriction on using callchains without "sym" in --sort

tip:perf/urgent tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Jan 9, 2019 1 message not in the archive perf events

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw
Commit-ID:  f2e14cd2c93699aa0aeaa8240457ab359f1258ff
Gitweb:     https://git.kernel.org/tip/f2e14cd2c93699aa0aeaa8240457ab359f1258ff
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Tue, 8 Jan 2019 10:56:59 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Tue, 8 Jan 2019 13:28:13 -0300

perf top: Lift restriction on using callchains without "sym" in --sort

This restriction is not present in 'perf report' and since 'perf top' uses the same hists browser, remove it from it as well.

With this we create per event buckets with callchain trees, so that

  # perf top --sort dso -g --no-children

Bucketizes samples by DSO and below it shows the callchains leading to functions in this DSO.

Try also:

  # perf top -e sched:*switch -g --no-children

To see the callchains leading to sched switches, pressing 'E' to expand all one can quickly see the most common scheduler switches and what leads to them, for instance, calls to IO, futexes, etc.

---
 tools/perf/builtin-top.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)
tools/perf/builtin-top.c +1 -6
index fe3ecfb2e64b..f64e312db787 100644
@@ -1028,12 +1028,7 @@ out_err:
 
 static int callchain_param__setup_sample_type(struct callchain_param *callchain)
 {
-	if (!perf_hpp_list.sym) {
-		if (callchain->enabled) {
-			ui__error("Selected -g but \"sym\" not present in --sort/-s.");
-			return -EINVAL;
-		}
-	} else if (callchain->mode != CHAIN_NONE) {
+	if (callchain->mode != CHAIN_NONE) {
 		if (callchain_register_param(callchain) < 0) {
 			ui__error("Can't register callchain params.\n");
 			return -EINVAL;