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
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
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
>>
>
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
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
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
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
>>>
>>
>
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
>>>>
>>>
>>
>
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
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
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
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