linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Martin Liška" <mliska@suse.cz>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org
Subject: Re: [PATCH] perf annotate: add --demangle and --demangle-kernel
Date: Fri, 26 Feb 2021 11:01:11 +0100	[thread overview]
Message-ID: <a2349b3e-b3e2-f979-6bc5-a2cffbdd2d6a@suse.cz> (raw)
In-Reply-To: <YDVcZJscuKIgShsm@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 2589 bytes --]

On 2/23/21 8:49 PM, Arnaldo Carvalho de Melo wrote:
> Em Mon, Feb 22, 2021 at 09:29:22AM +0100, Martin Liška escreveu:
>> Perf annotate supports --symbol but it's impossible to filter
>> a C++ symbol. With --no-demangle one can filter easily by
>> mangled function name.
>>
>> Signed-off-by: Martin Liška <mliska@suse.cz>
>> ---
>>   tools/perf/Documentation/perf-annotate.txt | 7 +++++++
>>   tools/perf/builtin-annotate.c              | 4 ++++
>>   2 files changed, 11 insertions(+)
>>
>> diff --git a/tools/perf/Documentation/perf-annotate.txt b/tools/perf/Documentation/perf-annotate.txt
>> index 1b5042f134a8..80c1be5d566c 100644
>> --- a/tools/perf/Documentation/perf-annotate.txt
>> +++ b/tools/perf/Documentation/perf-annotate.txt
>> @@ -124,6 +124,13 @@ OPTIONS
>>   --group::
>>   	Show event group information together
>> +--demangle::
>> +	Demangle symbol names to human readable form. It's enabled by default,
>> +	disable with --no-demangle.
>> +
>> +--demangle-kernel::
>> +	Demangle kernel symbol names to human readable form (for C++ kernels).
>> +
>>   --percent-type::
>>   	Set annotation percent type from following choices:
>>   	  global-period, local-period, global-hits, local-hits
>> diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
>> index a23ba6bb99b6..ef70a17b9b5b 100644
>> --- a/tools/perf/builtin-annotate.c
>> +++ b/tools/perf/builtin-annotate.c
>> @@ -538,6 +538,10 @@ int cmd_annotate(int argc, const char **argv)
>>   		    "Strip first N entries of source file path name in programs (with --prefix)"),
>>   	OPT_STRING(0, "objdump", &annotate.opts.objdump_path, "path",
>>   		   "objdump binary to use for disassembly and annotations"),
>> +	OPT_BOOLEAN(0, "demangle", &symbol_conf.demangle,
>> +		    "Disable symbol demangling"),
> 
> Nope, this _enables_ demangling, i.e.:
> 
> 	perf annotate --demangle

Oh, yeah, you are right.

> 
> Asks for symbol demangling, while:
> 
> 	perf annotate --no-demangle
> 
> As you correctly wrote in your commit message and on the
> --demangle-kernel case, enables demangling.

Fixed that in V2.

Martin

> 
> Please consider making this configurable (if not already) via
> ~/.perfconfig, 'perf config', sure in a followup patch.
> 
> Thanks,
> 
> - Arnaldo
> 
>> +	OPT_BOOLEAN(0, "demangle-kernel", &symbol_conf.demangle_kernel,
>> +		    "Enable kernel symbol demangling"),
>>   	OPT_BOOLEAN(0, "group", &symbol_conf.event_group,
>>   		    "Show event group information together"),
>>   	OPT_BOOLEAN(0, "show-total-period", &symbol_conf.show_total_period,
>> -- 
>> 2.30.1
>>
> 


[-- Attachment #2: 0001-perf-annotate-add-demangle-and-demangle-kernel.patch --]
[-- Type: text/x-patch, Size: 2157 bytes --]

From 336233abae5c539d7b2730cbbe35d0c7528bccc2 Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@suse.cz>
Date: Mon, 22 Feb 2021 09:24:22 +0100
Subject: [PATCH] perf annotate: add --demangle and --demangle-kernel
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Perf annotate supports --symbol but it's impossible to filter
a C++ symbol. With --no-demangle one can filter easily by
mangled function name.

Signed-off-by: Martin Liška <mliska@suse.cz>
---
 tools/perf/Documentation/perf-annotate.txt | 7 +++++++
 tools/perf/builtin-annotate.c              | 4 ++++
 2 files changed, 11 insertions(+)

diff --git a/tools/perf/Documentation/perf-annotate.txt b/tools/perf/Documentation/perf-annotate.txt
index 1b5042f134a8..80c1be5d566c 100644
--- a/tools/perf/Documentation/perf-annotate.txt
+++ b/tools/perf/Documentation/perf-annotate.txt
@@ -124,6 +124,13 @@ OPTIONS
 --group::
 	Show event group information together
 
+--demangle::
+	Demangle symbol names to human readable form. It's enabled by default,
+	disable with --no-demangle.
+
+--demangle-kernel::
+	Demangle kernel symbol names to human readable form (for C++ kernels).
+
 --percent-type::
 	Set annotation percent type from following choices:
 	  global-period, local-period, global-hits, local-hits
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index a23ba6bb99b6..ea05d9f927cb 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -538,6 +538,10 @@ int cmd_annotate(int argc, const char **argv)
 		    "Strip first N entries of source file path name in programs (with --prefix)"),
 	OPT_STRING(0, "objdump", &annotate.opts.objdump_path, "path",
 		   "objdump binary to use for disassembly and annotations"),
+	OPT_BOOLEAN(0, "demangle", &symbol_conf.demangle,
+		    "Enable symbol demangling"),
+	OPT_BOOLEAN(0, "demangle-kernel", &symbol_conf.demangle_kernel,
+		    "Enable kernel symbol demangling"),
 	OPT_BOOLEAN(0, "group", &symbol_conf.event_group,
 		    "Show event group information together"),
 	OPT_BOOLEAN(0, "show-total-period", &symbol_conf.show_total_period,
-- 
2.30.1


  reply	other threads:[~2021-02-26 10:02 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-22  8:29 [PATCH] perf annotate: add --demangle and --demangle-kernel Martin Liška
2021-02-23 19:49 ` Arnaldo Carvalho de Melo
2021-02-26 10:01   ` Martin Liška [this message]
2021-03-07 19:23     ` Martin Liška
2021-03-30  7:41       ` Martin Liška
2021-03-30 15:42         ` Arnaldo Carvalho de Melo
2021-03-30 18:19           ` Martin Liška
2021-03-30 18:23             ` Arnaldo Carvalho de Melo
2021-03-30 18:33             ` Martin Liška
2021-02-26 10:03   ` [PATCH] perf config: add annotate.demangle{,_kernel} Martin Liška
2021-02-26 10:08     ` Martin Liška
2021-03-06 13:22       ` Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a2349b3e-b3e2-f979-6bc5-a2cffbdd2d6a@suse.cz \
    --to=mliska@suse.cz \
    --cc=acme@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).