diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/Documentation/perf-top.txt | 8 | ||||
-rw-r--r-- | tools/perf/builtin-top.c | 7 |
2 files changed, 14 insertions, 1 deletions
diff --git a/tools/perf/Documentation/perf-top.txt b/tools/perf/Documentation/perf-top.txt index dcfa54c851e9..180ae02137a5 100644 --- a/tools/perf/Documentation/perf-top.txt +++ b/tools/perf/Documentation/perf-top.txt | |||
@@ -119,7 +119,7 @@ Default is to monitor all CPUS. | |||
119 | --fields=:: | 119 | --fields=:: |
120 | Specify output field - multiple keys can be specified in CSV format. | 120 | Specify output field - multiple keys can be specified in CSV format. |
121 | Following fields are available: | 121 | Following fields are available: |
122 | overhead, overhead_sys, overhead_us, sample and period. | 122 | overhead, overhead_sys, overhead_us, overhead_children, sample and period. |
123 | Also it can contain any sort key(s). | 123 | Also it can contain any sort key(s). |
124 | 124 | ||
125 | By default, every sort keys not specified in --field will be appended | 125 | By default, every sort keys not specified in --field will be appended |
@@ -161,6 +161,12 @@ Default is to monitor all CPUS. | |||
161 | Setup and enable call-graph (stack chain/backtrace) recording, | 161 | Setup and enable call-graph (stack chain/backtrace) recording, |
162 | implies -g. | 162 | implies -g. |
163 | 163 | ||
164 | --children:: | ||
165 | Accumulate callchain of children to parent entry so that then can | ||
166 | show up in the output. The output will have a new "Children" column | ||
167 | and will be sorted on the data. It requires -g/--call-graph option | ||
168 | enabled. | ||
169 | |||
164 | --max-stack:: | 170 | --max-stack:: |
165 | Set the stack depth limit when parsing the callchain, anything | 171 | Set the stack depth limit when parsing the callchain, anything |
166 | beyond the specified depth will be ignored. This is a trade-off | 172 | beyond the specified depth will be ignored. This is a trade-off |
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index b1cb5f589ade..fea55e3fc931 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c | |||
@@ -1098,6 +1098,8 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused) | |||
1098 | OPT_CALLBACK(0, "call-graph", &top.record_opts, | 1098 | OPT_CALLBACK(0, "call-graph", &top.record_opts, |
1099 | "mode[,dump_size]", record_callchain_help, | 1099 | "mode[,dump_size]", record_callchain_help, |
1100 | &parse_callchain_opt), | 1100 | &parse_callchain_opt), |
1101 | OPT_BOOLEAN(0, "children", &symbol_conf.cumulate_callchain, | ||
1102 | "Accumulate callchains of children and show total overhead as well"), | ||
1101 | OPT_INTEGER(0, "max-stack", &top.max_stack, | 1103 | OPT_INTEGER(0, "max-stack", &top.max_stack, |
1102 | "Set the maximum stack depth when parsing the callchain. " | 1104 | "Set the maximum stack depth when parsing the callchain. " |
1103 | "Default: " __stringify(PERF_MAX_STACK_DEPTH)), | 1105 | "Default: " __stringify(PERF_MAX_STACK_DEPTH)), |
@@ -1203,6 +1205,11 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused) | |||
1203 | 1205 | ||
1204 | top.sym_evsel = perf_evlist__first(top.evlist); | 1206 | top.sym_evsel = perf_evlist__first(top.evlist); |
1205 | 1207 | ||
1208 | if (!symbol_conf.use_callchain) { | ||
1209 | symbol_conf.cumulate_callchain = false; | ||
1210 | perf_hpp__cancel_cumulate(); | ||
1211 | } | ||
1212 | |||
1206 | symbol_conf.priv_size = sizeof(struct annotation); | 1213 | symbol_conf.priv_size = sizeof(struct annotation); |
1207 | 1214 | ||
1208 | symbol_conf.try_vmlinux_path = (symbol_conf.vmlinux_name == NULL); | 1215 | symbol_conf.try_vmlinux_path = (symbol_conf.vmlinux_name == NULL); |