* [PATCH] perf: make annotate more readable
@ 2011-05-17 15:32 Stephane Eranian
2011-05-17 15:46 ` Peter Zijlstra
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Stephane Eranian @ 2011-05-17 15:32 UTC (permalink / raw)
To: linux-kernel; +Cc: acme, peterz, mingo
This patch adds two new options to perf annotate:
- -R, --no-asm-raw : do not display raw instruction encodings
- -S, --no-source : do not interleave source code with assembly code
We believe those options make the output of annotate more readable.
Systematically displaying source can make it hard to follow code and
especially optimized code.
Raw encodings are not useful in most cases.
Signed-off-by: Stephane Eranian <eranian@google.com>
---
diff --git a/tools/perf/Documentation/perf-annotate.txt b/tools/perf/Documentation/perf-annotate.txt
index 6f5a498..cf59fdd 100644
--- a/tools/perf/Documentation/perf-annotate.txt
+++ b/tools/perf/Documentation/perf-annotate.txt
@@ -66,6 +66,15 @@ OPTIONS
used. This interfaces starts by centering on the line with more
samples, TAB/UNTAB cycles through the lines with more samples.
+-R::
+--no-asm-raw::
+ Do not show raw instruction encoding of assembly instructions. They
+ are displayed by default
+
+-S
+--no-source::
+ Do not interleave source code with assembly code.
+
SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-report[1]
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index e18eb7e..976f5d8 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -254,6 +254,10 @@ static const struct option options[] = {
"print matching source lines (may be slow)"),
OPT_BOOLEAN('P', "full-paths", &full_paths,
"Don't shorten the displayed pathnames"),
+ OPT_BOOLEAN('S', "no-source", &symbol_conf.annotate_no_src,
+ "do not interleave source code with assembly code"),
+ OPT_BOOLEAN('R', "no-asm-raw", &symbol_conf.asm_no_raw,
+ "do not display raw encoding of assembly instructions"),
OPT_END()
};
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 532e4a6..5ccb32b 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -324,9 +324,12 @@ fallback:
snprintf(command, sizeof(command),
"objdump --start-address=0x%016" PRIx64
- " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand",
+ " --stop-address=0x%016" PRIx64
+ " -d %s %s -C %s|grep -v %s|expand",
map__rip_2objdump(map, sym->start),
map__rip_2objdump(map, sym->end),
+ symbol_conf.asm_no_raw ? "--no-show-raw" : "",
+ symbol_conf.annotate_no_src ? "" : "-S",
symfs_filename, filename);
pr_debug("Executing: %s\n", command);
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
index c1736e5..bd75365 100644
--- a/tools/perf/util/symbol.h
+++ b/tools/perf/util/symbol.h
@@ -75,7 +75,9 @@ struct symbol_conf {
use_callchain,
exclude_other,
show_cpu_utilization,
- initialized;
+ initialized,
+ asm_no_raw,
+ annotate_no_src;
const char *vmlinux_name,
*kallsyms_name,
*source_prefix,
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH] perf: make annotate more readable 2011-05-17 15:32 [PATCH] perf: make annotate more readable Stephane Eranian @ 2011-05-17 15:46 ` Peter Zijlstra 2011-06-03 18:56 ` Arnaldo Carvalho de Melo ` (2 subsequent siblings) 3 siblings, 0 replies; 6+ messages in thread From: Peter Zijlstra @ 2011-05-17 15:46 UTC (permalink / raw) To: Stephane Eranian; +Cc: linux-kernel, acme, mingo On Tue, 2011-05-17 at 17:32 +0200, Stephane Eranian wrote: > This patch adds two new options to perf annotate: > - -R, --no-asm-raw : do not display raw instruction encodings > - -S, --no-source : do not interleave source code with assembly code > > We believe those options make the output of annotate more readable. > Systematically displaying source can make it hard to follow code and > especially optimized code. Agreed, asm->C maps from optimized code are a mess. > Raw encodings are not useful in most cases. Also true. Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] perf: make annotate more readable 2011-05-17 15:32 [PATCH] perf: make annotate more readable Stephane Eranian 2011-05-17 15:46 ` Peter Zijlstra @ 2011-06-03 18:56 ` Arnaldo Carvalho de Melo 2011-06-03 18:59 ` Arnaldo Carvalho de Melo 2011-06-03 19:04 ` Måns Rullgård 2011-08-18 20:13 ` [tip:perf/core] perf annotate: Make output " tip-bot for Stephane Eranian 3 siblings, 1 reply; 6+ messages in thread From: Arnaldo Carvalho de Melo @ 2011-06-03 18:56 UTC (permalink / raw) To: Stephane Eranian; +Cc: linux-kernel, peterz, mingo Em Tue, May 17, 2011 at 05:32:07PM +0200, Stephane Eranian escreveu: > > This patch adds two new options to perf annotate: > - -R, --no-asm-raw : do not display raw instruction encodings > - -S, --no-source : do not interleave source code with assembly code > > We believe those options make the output of annotate more readable. > Systematically displaying source can make it hard to follow code and > especially optimized code. > > Raw encodings are not useful in most cases. Ok, applying it and then adding a followup patch to have these new options in both 'perf top' and 'perf report', since you can do annotation (live and static, respectively) from those tools. - Arnaldo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] perf: make annotate more readable 2011-06-03 18:56 ` Arnaldo Carvalho de Melo @ 2011-06-03 18:59 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 6+ messages in thread From: Arnaldo Carvalho de Melo @ 2011-06-03 18:59 UTC (permalink / raw) To: Stephane Eranian; +Cc: linux-kernel, peterz, mingo Em Fri, Jun 03, 2011 at 03:56:33PM -0300, Arnaldo Carvalho de Melo escreveu: > Em Tue, May 17, 2011 at 05:32:07PM +0200, Stephane Eranian escreveu: > > > > This patch adds two new options to perf annotate: > > - -R, --no-asm-raw : do not display raw instruction encodings > > - -S, --no-source : do not interleave source code with assembly code > > > > We believe those options make the output of annotate more readable. > > Systematically displaying source can make it hard to follow code and > > especially optimized code. > > > > Raw encodings are not useful in most cases. > > Ok, applying it and then adding a followup patch to have these new > options in both 'perf top' and 'perf report', since you can do > annotation (live and static, respectively) from those tools. Will change it to --source and --asm-raw, since we have logic to negate any option by adding "no-" after '--' and before boolean options. - Arnaldo ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] perf: make annotate more readable 2011-05-17 15:32 [PATCH] perf: make annotate more readable Stephane Eranian 2011-05-17 15:46 ` Peter Zijlstra 2011-06-03 18:56 ` Arnaldo Carvalho de Melo @ 2011-06-03 19:04 ` Måns Rullgård 2011-08-18 20:13 ` [tip:perf/core] perf annotate: Make output " tip-bot for Stephane Eranian 3 siblings, 0 replies; 6+ messages in thread From: Måns Rullgård @ 2011-06-03 19:04 UTC (permalink / raw) To: linux-kernel Stephane Eranian <eranian@google.com> writes: > This patch adds two new options to perf annotate: > - -R, --no-asm-raw : do not display raw instruction encodings > - -S, --no-source : do not interleave source code with assembly code > > We believe those options make the output of annotate more readable. > Systematically displaying source can make it hard to follow code and > especially optimized code. > > Raw encodings are not useful in most cases. Would it be possible to have it display only the source like opannotate can do? -- Måns Rullgård mans@mansr.com ^ permalink raw reply [flat|nested] 6+ messages in thread
* [tip:perf/core] perf annotate: Make output more readable 2011-05-17 15:32 [PATCH] perf: make annotate more readable Stephane Eranian ` (2 preceding siblings ...) 2011-06-03 19:04 ` Måns Rullgård @ 2011-08-18 20:13 ` tip-bot for Stephane Eranian 3 siblings, 0 replies; 6+ messages in thread From: tip-bot for Stephane Eranian @ 2011-08-18 20:13 UTC (permalink / raw) To: linux-tip-commits Cc: acme, linux-kernel, eranian, hpa, mingo, peterz, tglx, mingo Commit-ID: 3e6a2a7f3b9d0e521bb3284573b696d0cbe1952c Gitweb: http://git.kernel.org/tip/3e6a2a7f3b9d0e521bb3284573b696d0cbe1952c Author: Stephane Eranian <eranian@google.com> AuthorDate: Tue, 17 May 2011 17:32:07 +0200 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Thu, 18 Aug 2011 07:38:21 -0300 perf annotate: Make output more readable This patch adds two new options to perf annotate: - --no-asm-raw : Do not display raw instruction encodings - --no-source : Do not interleave source code with assembly code We believe those options make the output of annotate more readable. Systematically displaying source can make it hard to follow code and especially optimized code. Raw encodings are not useful in most cases. Cc: Ingo Molnar <mingo@elte.hu> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20110517153207.GA9834@quad Signed-off-by: Stephane Eranian <eranian@google.com> [committer note: Use the 'no-' option inverting logic] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Documentation/perf-annotate.txt | 8 ++++++++ tools/perf/builtin-annotate.c | 4 ++++ tools/perf/util/annotate.c | 5 ++++- tools/perf/util/symbol.c | 2 ++ tools/perf/util/symbol.h | 4 +++- 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/tools/perf/Documentation/perf-annotate.txt b/tools/perf/Documentation/perf-annotate.txt index 85c5f02..5bc0600 100644 --- a/tools/perf/Documentation/perf-annotate.txt +++ b/tools/perf/Documentation/perf-annotate.txt @@ -72,6 +72,14 @@ OPTIONS CPUs are specified with -: 0-2. Default is to report samples on all CPUs. +--asm-raw:: + Show raw instruction encoding of assembly instructions. They + are displayed by default, disable with --no-asm-raw. + +--source:: + Interleave source code with assembly code. Enabled by default, + disable with --no-source. + SEE ALSO -------- linkperf:perf-record[1], linkperf:perf-report[1] diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index 555aefd..5015e04 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c @@ -267,6 +267,10 @@ static const struct option options[] = { OPT_BOOLEAN('P', "full-paths", &full_paths, "Don't shorten the displayed pathnames"), OPT_STRING('c', "cpu", &cpu_list, "cpu", "list of cpus to profile"), + OPT_BOOLEAN('0', "source", &symbol_conf.annotate_src, + "Interleave source code with assembly code (default)"), + OPT_BOOLEAN('0', "asm-raw", &symbol_conf.annotate_asm_raw, + "Display raw encoding of assembly instructions (default)"), OPT_END() }; diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index e01af2b..01d36ba 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -324,9 +324,12 @@ fallback: snprintf(command, sizeof(command), "objdump --start-address=0x%016" PRIx64 - " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand", + " --stop-address=0x%016" PRIx64 + " -d %s %s -C %s|grep -v %s|expand", map__rip_2objdump(map, sym->start), map__rip_2objdump(map, sym->end), + symbol_conf.annotate_asm_raw ? "" : "--no-show-raw", + symbol_conf.annotate_src ? "-S" : "", symfs_filename, filename); pr_debug("Executing: %s\n", command); diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 469c026..245e60d 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -46,6 +46,8 @@ struct symbol_conf symbol_conf = { .exclude_other = true, .use_modules = true, .try_vmlinux_path = true, + .annotate_asm_raw = true, + .annotate_src = true, .symfs = "", }; diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h index 4f377d9..7733f0b 100644 --- a/tools/perf/util/symbol.h +++ b/tools/perf/util/symbol.h @@ -76,7 +76,9 @@ struct symbol_conf { exclude_other, show_cpu_utilization, initialized, - kptr_restrict; + kptr_restrict, + annotate_asm_raw, + annotate_src; const char *vmlinux_name, *kallsyms_name, *source_prefix, ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-08-18 20:13 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-05-17 15:32 [PATCH] perf: make annotate more readable Stephane Eranian 2011-05-17 15:46 ` Peter Zijlstra 2011-06-03 18:56 ` Arnaldo Carvalho de Melo 2011-06-03 18:59 ` Arnaldo Carvalho de Melo 2011-06-03 19:04 ` Måns Rullgård 2011-08-18 20:13 ` [tip:perf/core] perf annotate: Make output " tip-bot for Stephane Eranian
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox