2021-02-22 08:32:59

by Martin Liška

[permalink] [raw]
Subject: [PATCH] perf annotate: add --demangle and --demangle-kernel

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 <[email protected]>
---
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"),
+ 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


2021-02-23 23:47:47

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: add --demangle and --demangle-kernel

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 <[email protected]>
> ---
> 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

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.

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
>

--

- Arnaldo

2021-02-26 10:05:12

by Martin Liška

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: add --demangle and --demangle-kernel

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 <[email protected]>
>> ---
>> 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
>>
>


Attachments:
0001-perf-annotate-add-demangle-and-demangle-kernel.patch (2.16 kB)

2021-02-26 10:13:44

by Martin Liška

[permalink] [raw]
Subject: [PATCH] perf config: add annotate.demangle{,_kernel}

On 2/23/21 8:49 PM, Arnaldo Carvalho de Melo wrote:
> Please consider making this configurable (if not already) via
> ~/.perfconfig, 'perf config', sure in a followup patch.

I'm doing that in the following patch.

Thanks,
Martin


Attachments:
0001-perf-config-add-annotate.demangle-_kernel.patch (1.87 kB)

2021-02-26 10:15:59

by Martin Liška

[permalink] [raw]
Subject: Re: [PATCH] perf config: add annotate.demangle{,_kernel}

On 2/26/21 11:03 AM, Martin Liška wrote:
> On 2/23/21 8:49 PM, Arnaldo Carvalho de Melo wrote:
>> Please consider making this configurable (if not already) via
>> ~/.perfconfig, 'perf config', sure in a followup patch.
>
> I'm doing that in the following patch.

The patch contained a typo, fixed in the V2.

Martin

>
> Thanks,
> Martin


Attachments:
0001-perf-config-add-annotate.demangle-_kernel.patch (1.87 kB)

2021-03-06 13:25:44

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf config: add annotate.demangle{,_kernel}

Em Fri, Feb 26, 2021 at 11:08:12AM +0100, Martin Liška escreveu:
> On 2/26/21 11:03 AM, Martin Liška wrote:
> > On 2/23/21 8:49 PM, Arnaldo Carvalho de Melo wrote:
> > > Please consider making this configurable (if not already) via
> > > ~/.perfconfig, 'perf config', sure in a followup patch.
> >
> > I'm doing that in the following patch.
>
> The patch contained a typo, fixed in the V2.



Thanks, applied.

And expanded that commit log a bit:

Author: Martin Liska <[email protected]>
Date: Fri Feb 26 11:01:24 2021 +0100

perf config: Add annotate.demangle{,_kernel}

Committer notes:

This allows setting this in from the command line:

$ perf config annotate.demangle
$ perf config annotate.demangle=yes
$ perf config annotate.demangle
annotate.demangle=yes
$ cat ~/.perfconfig
# this file is auto-generated.
[report]
sort-order = srcline
[annotate]
demangle = yes
$
$
$ perf config annotate.demangle_kernel
$ perf config annotate.demangle_kernel=yes
$ perf config annotate.demangle_kernel
annotate.demangle_kernel=yes
$ cat ~/.perfconfig
# this file is auto-generated.
[report]
sort-order = srcline
[annotate]
demangle = yes
demangle_kernel = yes
$

Signed-off-by: Martin Liška <[email protected]>
Tested-by: Arnaldo Carvalho de Melo <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>

- Arnaldo


> Martin
>
> >
> > Thanks,
> > Martin
>

> From a29a6d3ae717f19774a430ccf9a63a452376f359 Mon Sep 17 00:00:00 2001
> From: Martin Liska <[email protected]>
> Date: Fri, 26 Feb 2021 11:01:24 +0100
> Subject: [PATCH] perf config: add annotate.demangle{,_kernel}
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> Signed-off-by: Martin Liška <[email protected]>
> ---
> tools/perf/Documentation/perf-config.txt | 6 ++++++
> tools/perf/util/annotate.c | 4 ++++
> 2 files changed, 10 insertions(+)
>
> diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
> index 153bde14bbe0..154a1ced72b2 100644
> --- a/tools/perf/Documentation/perf-config.txt
> +++ b/tools/perf/Documentation/perf-config.txt
> @@ -393,6 +393,12 @@ annotate.*::
>
> This option works with tui, stdio2 browsers.
>
> + annotate.demangle::
> + Demangle symbol names to human readable form. Default is 'true'.
> +
> + annotate.demangle_kernel::
> + Demangle kernel symbol names to human readable form. Default is 'true'.
> +
> hist.*::
> hist.percentage::
> This option control the way to calculate overhead of filtered entries -
> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index 80542012ec1b..e35d56608986 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -3142,6 +3142,10 @@ static int annotation__config(const char *var, const char *value, void *data)
> opt->use_offset = perf_config_bool("use_offset", value);
> } else if (!strcmp(var, "annotate.disassembler_style")) {
> opt->disassembler_style = value;
> + } else if (!strcmp(var, "annotate.demangle")) {
> + symbol_conf.demangle = perf_config_bool("demangle", value);
> + } else if (!strcmp(var, "annotate.demangle_kernel")) {
> + symbol_conf.demangle_kernel = perf_config_bool("demangle_kernel", value);
> } else {
> pr_debug("%s variable unknown, ignoring...", var);
> }
> --
> 2.30.1
>


--

- Arnaldo

2021-03-08 08:19:16

by Martin Liška

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: add --demangle and --demangle-kernel

Hello.

May I please remind this patch. Apparently, you applied the perf-config
counterpart of the patch as 804fd30c6bd9aec7859a0503581312834fb197f1
(in tmp.perf/core branch), but we miss setting the same via options.

Thank you,
Martin

On 2/26/21 11:01 AM, Martin Liška wrote:
> 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 <[email protected]>
>>> ---
>>>   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
>>>
>>
>

2021-03-30 07:43:29

by Martin Liška

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: add --demangle and --demangle-kernel

PING^2

On 3/7/21 8:23 PM, Martin Liška wrote:
> Hello.
>
> May I please remind this patch. Apparently, you applied the perf-config
> counterpart of the patch as 804fd30c6bd9aec7859a0503581312834fb197f1
> (in tmp.perf/core branch), but we miss setting the same via options.
>
> Thank you,
> Martin
>
> On 2/26/21 11:01 AM, Martin Liška wrote:
>> 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 <[email protected]>
>>>> ---
>>>>   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
>>>>
>>>
>>
>

2021-03-30 15:44:56

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: add --demangle and --demangle-kernel

Em Tue, Mar 30, 2021 at 09:41:33AM +0200, Martin Liška escreveu:
> PING^2
>
> On 3/7/21 8:23 PM, Martin Liška wrote:
> > Hello.
> >
> > May I please remind this patch. Apparently, you applied the perf-config
> > counterpart of the patch as 804fd30c6bd9aec7859a0503581312834fb197f1
> > (in tmp.perf/core branch), but we miss setting the same via options.
> >
> > Thank you,
> > Martin
> >
> > On 2/26/21 11:01 AM, Martin Liška wrote:
> > > 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 <[email protected]>
> > > > > ---
> > > > >   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.

Trying to find V2

- Arnaldo

2021-03-30 18:21:28

by Martin Liška

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: add --demangle and --demangle-kernel

On 3/30/21 5:42 PM, Arnaldo Carvalho de Melo wrote:
> Trying to find V2

It's this email:
https://lore.kernel.org/lkml/[email protected]/

Subject: Re: [PATCH] perf config: add annotate.demangle{,_kernel}
From: =?UTF-8?Q?Martin_Li=c5=a1ka?= <[email protected]>
To: Arnaldo Carvalho de Melo <[email protected]>
Cc: [email protected], [email protected]
References: <[email protected]>
<[email protected]> <[email protected]>
Message-ID: <[email protected]>
Date: Fri, 26 Feb 2021 11:08:12 +0100


Cheers,
Martin

2021-03-30 18:27:37

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: add --demangle and --demangle-kernel

Em Tue, Mar 30, 2021 at 08:19:10PM +0200, Martin Liška escreveu:
> On 3/30/21 5:42 PM, Arnaldo Carvalho de Melo wrote:
> > Trying to find V2

You said you would resend fixing up this:

+ OPT_BOOLEAN(0, "demangle", &symbol_conf.demangle,
+ "Disable symbol demangling"),
^^^^^^^



+ OPT_BOOLEAN(0, "demangle-kernel", &symbol_conf.demangle_kernel,
+ "Enable kernel symbol demangling"),

> It's this email:
> https://lore.kernel.org/lkml/[email protected]/
>
> Subject: Re: [PATCH] perf config: add annotate.demangle{,_kernel}
> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= <[email protected]>
> To: Arnaldo Carvalho de Melo <[email protected]>
> Cc: [email protected], [email protected]
> References: <[email protected]>
> <[email protected]> <[email protected]>
> Message-ID: <[email protected]>
> Date: Fri, 26 Feb 2021 11:08:12 +0100
>
>
> Cheers,
> Martin

--

- Arnaldo

2021-03-30 18:56:30

by Martin Liška

[permalink] [raw]
Subject: [PATCH] perf annotate: add --demangle and --demangle-kernel

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 <[email protected]>
---
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 0f3a196e5d6e..021d974c978e 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.2