aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-report.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2010-05-09 19:28:10 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-05-09 20:15:35 -0400
commit232a5c948da5e23dff27e48180abf4a4238f7602 (patch)
treebf17e2e428a77b656946e798e3b099dc09c658be /tools/perf/builtin-report.c
parent1f626bc36847ac8dd192f055aed0f9678a781313 (diff)
perf report: Allow limiting the number of entries to print in callchains
Works by adding a third parameter to the '-g' argument, after the graph type and minimum percentage, for example: [root@doppio linux-2.6-tip]# perf report -g fractal,0.5,2 Will show only the first two symbols where at least 0.5% of the samples took place. All the other symbols that don't fall outside these constraints will be put together in the last entry, prefixed with "[...]" and the total percentage for them. Suggested-by: Arjan van de Ven <arjan@linux.intel.com> Acked-by: Arjan van de Ven <arjan@linux.intel.com> Cc: Arjan van de Ven <arjan@linux.intel.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Tom Zanussi <tzanussi@gmail.com> LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-report.c')
-rw-r--r--tools/perf/builtin-report.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 5e2f47f88ec6..642a6d8eb5dc 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -343,7 +343,7 @@ static int
343parse_callchain_opt(const struct option *opt __used, const char *arg, 343parse_callchain_opt(const struct option *opt __used, const char *arg,
344 int unset) 344 int unset)
345{ 345{
346 char *tok; 346 char *tok, *tok2;
347 char *endptr; 347 char *endptr;
348 348
349 /* 349 /*
@@ -388,10 +388,13 @@ parse_callchain_opt(const struct option *opt __used, const char *arg,
388 if (!tok) 388 if (!tok)
389 goto setup; 389 goto setup;
390 390
391 tok2 = strtok(NULL, ",");
391 callchain_param.min_percent = strtod(tok, &endptr); 392 callchain_param.min_percent = strtod(tok, &endptr);
392 if (tok == endptr) 393 if (tok == endptr)
393 return -1; 394 return -1;
394 395
396 if (tok2)
397 callchain_param.print_limit = strtod(tok2, &endptr);
395setup: 398setup:
396 if (register_callchain_param(&callchain_param) < 0) { 399 if (register_callchain_param(&callchain_param) < 0) {
397 fprintf(stderr, "Can't register callchain params\n"); 400 fprintf(stderr, "Can't register callchain params\n");