linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 0/3] perf symbols: debuglink and arm mapping symbols changes
@ 2015-01-22  4:52 Victor Kamensky
  2015-01-22  4:52 ` [PATCH V2 1/3] perf symbols: Ignore mapping symbols on aarch64 Victor Kamensky
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Victor Kamensky @ 2015-01-22  4:52 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Namhyung Kim, David Ahern, Will Deacon
  Cc: Russell King, Peter Zijlstra, Paul Mackerras, Ingo Molnar,
	Adrian Hunter, Jiri Olsa, Avi Kivity, Masami Hiramatsu,
	Anton Blanchard, Dave Martin, linux-kernel, linux-arm-kernel,
	Victor Kamensky

Hi Folks,

Here is second version of mini-series that addresses couple issues
in perf symbols handling.

Changes since V1:

o 'perf symbols: Ignore mapping symbols on aarch64': based on feedback
from Will Deacon and Russell King [1] added code that handles ARM/Aarch64
mapping symbols like "$d.<any>". Code uses similar snipet to handle
ARM mapping symbols as in another places in kernel, but it has its
own version of the code. Added proper Acked-by.

o 'perf symbols: debuglink should take symfs option into account':
based on feedback from David Ahern [2] picked more simple version that
does not make malloced copy of 'filename', that makes patch simpler.
Added proper 'Acked-and-tested-by'.

[1] https://lkml.org/lkml/2015/1/13/507

[2] https://lkml.org/lkml/2015/1/13/508

Victor Kamensky (3):
  perf symbols: Ignore mapping symbols on aarch64
  perf symbols: improve abi compliance in arm mapping symbols handling
  perf symbols: debuglink should take symfs option into account

 tools/perf/util/dso.c        |  6 +++---
 tools/perf/util/symbol-elf.c | 13 ++++++++++---
 2 files changed, 13 insertions(+), 6 deletions(-)

-- 
1.9.3


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH V2 1/3] perf symbols: Ignore mapping symbols on aarch64
  2015-01-22  4:52 [PATCH V2 0/3] perf symbols: debuglink and arm mapping symbols changes Victor Kamensky
@ 2015-01-22  4:52 ` Victor Kamensky
  2015-01-22 15:27   ` Russell King - ARM Linux
  2015-01-22  4:52 ` [PATCH V2 2/3] perf symbols: improve abi compliance in arm mapping symbols handling Victor Kamensky
  2015-01-22  4:52 ` [PATCH V2 3/3] perf symbols: debuglink should take symfs option into account Victor Kamensky
  2 siblings, 1 reply; 7+ messages in thread
From: Victor Kamensky @ 2015-01-22  4:52 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Namhyung Kim, David Ahern, Will Deacon
  Cc: Russell King, Peter Zijlstra, Paul Mackerras, Ingo Molnar,
	Adrian Hunter, Jiri Olsa, Avi Kivity, Masami Hiramatsu,
	Anton Blanchard, Dave Martin, linux-kernel, linux-arm-kernel,
	Victor Kamensky

Aarch64 ELF files use mapping symbols with special names $x, $d
to identify regions of Aarch64 code (see Aarch64 ELF ABI - "ARM
IHI 0056B", section "4.5.4 Mapping symbols").

The patch filters out these symbols at load time, similar to
"696b97a perf symbols: Ignore mapping symbols on ARM" changes
done for ARM before V8.

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Avi Kivity <avi@cloudius-systems.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Anton Blanchard <anton@samba.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Dave Martin <Dave.Martin@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
---
 tools/perf/util/symbol-elf.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index 06fcd1b..1e188dd 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -862,6 +862,14 @@ int dso__load_sym(struct dso *dso, struct map *map,
 			    !strcmp(elf_name, "$t"))
 				continue;
 		}
+		/* Reject Aarch64 ELF "mapping symbols": these aren't unique and
+		 * don't identify functions, so will confuse the profile
+		 * output: */
+		if (ehdr.e_machine == EM_AARCH64) {
+			if (!strcmp(elf_name, "$x") ||
+			    !strcmp(elf_name, "$d"))
+				continue;
+		}
 
 		if (runtime_ss->opdsec && sym.st_shndx == runtime_ss->opdidx) {
 			u32 offset = sym.st_value - syms_ss->opdshdr.sh_addr;
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH V2 2/3] perf symbols: improve abi compliance in arm mapping symbols handling
  2015-01-22  4:52 [PATCH V2 0/3] perf symbols: debuglink and arm mapping symbols changes Victor Kamensky
  2015-01-22  4:52 ` [PATCH V2 1/3] perf symbols: Ignore mapping symbols on aarch64 Victor Kamensky
@ 2015-01-22  4:52 ` Victor Kamensky
  2015-01-22 15:29   ` Russell King - ARM Linux
  2015-01-22  4:52 ` [PATCH V2 3/3] perf symbols: debuglink should take symfs option into account Victor Kamensky
  2 siblings, 1 reply; 7+ messages in thread
From: Victor Kamensky @ 2015-01-22  4:52 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Namhyung Kim, David Ahern, Will Deacon
  Cc: Russell King, Peter Zijlstra, Paul Mackerras, Ingo Molnar,
	Adrian Hunter, Jiri Olsa, Avi Kivity, Masami Hiramatsu,
	Anton Blanchard, Dave Martin, linux-kernel, linux-arm-kernel,
	Victor Kamensky

Both Arm and Aarch64 ELF ABI allow mapping symbols be in from
either "$d" or "$d.<any>". But current code that handles mapping
symbols only deals with the first, dollar character and a single
letter, case.

The patch adds handling of the second case with period
followed by any characters.

Suggested-by: Russell King <linux@arm.linux.org.uk>
Suggested-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Avi Kivity <avi@cloudius-systems.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Anton Blanchard <anton@samba.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Dave Martin <Dave.Martin@arm.com>
---
 tools/perf/util/symbol-elf.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index 1e188dd..7fd35d6 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -857,17 +857,16 @@ int dso__load_sym(struct dso *dso, struct map *map,
 		 * don't identify functions, so will confuse the profile
 		 * output: */
 		if (ehdr.e_machine == EM_ARM) {
-			if (!strcmp(elf_name, "$a") ||
-			    !strcmp(elf_name, "$d") ||
-			    !strcmp(elf_name, "$t"))
+			if (elf_name[0] == '$' && strchr("adt", elf_name[1])
+			    && (elf_name[2] == '\0' || elf_name[2] == '.'))
 				continue;
 		}
 		/* Reject Aarch64 ELF "mapping symbols": these aren't unique and
 		 * don't identify functions, so will confuse the profile
 		 * output: */
 		if (ehdr.e_machine == EM_AARCH64) {
-			if (!strcmp(elf_name, "$x") ||
-			    !strcmp(elf_name, "$d"))
+			if (elf_name[0] == '$' && strchr("dx", elf_name[1])
+			    && (elf_name[2] == '\0' || elf_name[2] == '.'))
 				continue;
 		}
 
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH V2 3/3] perf symbols: debuglink should take symfs option into account
  2015-01-22  4:52 [PATCH V2 0/3] perf symbols: debuglink and arm mapping symbols changes Victor Kamensky
  2015-01-22  4:52 ` [PATCH V2 1/3] perf symbols: Ignore mapping symbols on aarch64 Victor Kamensky
  2015-01-22  4:52 ` [PATCH V2 2/3] perf symbols: improve abi compliance in arm mapping symbols handling Victor Kamensky
@ 2015-01-22  4:52 ` Victor Kamensky
  2 siblings, 0 replies; 7+ messages in thread
From: Victor Kamensky @ 2015-01-22  4:52 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Namhyung Kim, David Ahern, Will Deacon
  Cc: Russell King, Peter Zijlstra, Paul Mackerras, Ingo Molnar,
	Adrian Hunter, Jiri Olsa, Avi Kivity, Masami Hiramatsu,
	Anton Blanchard, Dave Martin, linux-kernel, linux-arm-kernel,
	Victor Kamensky, Jiri Olsa, Waiman Long

Currently code that tries to read corresponding debug symbol
file from .gnu_debuglink section (DSO_BINARY_TYPE__DEBUGLINK)
does not take in account symfs option, so filename__read_debuglink
function cannot open ELF file, if symfs option is used.

Fix is to add proper handling of symfs as it is done in other
places: use __symbol__join_symfs function to get real file name
of target ELF file.

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Waiman Long <Waiman.Long@hp.com>
Cc: David Ahern <dsahern@gmail.com>
Acked-and-tested-by: David Ahern <dsahern@gmail.com>
---
 tools/perf/util/dso.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c
index 45be944..ca8d8d5 100644
--- a/tools/perf/util/dso.c
+++ b/tools/perf/util/dso.c
@@ -45,13 +45,13 @@ int dso__read_binary_type_filename(const struct dso *dso,
 	case DSO_BINARY_TYPE__DEBUGLINK: {
 		char *debuglink;
 
-		strncpy(filename, dso->long_name, size);
-		debuglink = filename + dso->long_name_len;
+		len = __symbol__join_symfs(filename, size, dso->long_name);
+		debuglink = filename + len;
 		while (debuglink != filename && *debuglink != '/')
 			debuglink--;
 		if (*debuglink == '/')
 			debuglink++;
-		ret = filename__read_debuglink(dso->long_name, debuglink,
+		ret = filename__read_debuglink(filename, debuglink,
 					       size - (debuglink - filename));
 		}
 		break;
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH V2 1/3] perf symbols: Ignore mapping symbols on aarch64
  2015-01-22  4:52 ` [PATCH V2 1/3] perf symbols: Ignore mapping symbols on aarch64 Victor Kamensky
@ 2015-01-22 15:27   ` Russell King - ARM Linux
  0 siblings, 0 replies; 7+ messages in thread
From: Russell King - ARM Linux @ 2015-01-22 15:27 UTC (permalink / raw)
  To: Victor Kamensky
  Cc: Arnaldo Carvalho de Melo, Namhyung Kim, David Ahern, Will Deacon,
	Peter Zijlstra, Paul Mackerras, Ingo Molnar, Adrian Hunter,
	Jiri Olsa, Avi Kivity, Masami Hiramatsu, Anton Blanchard,
	Dave Martin, linux-kernel, linux-arm-kernel

On Wed, Jan 21, 2015 at 08:52:56PM -0800, Victor Kamensky wrote:
> Aarch64 ELF files use mapping symbols with special names $x, $d
> to identify regions of Aarch64 code (see Aarch64 ELF ABI - "ARM
> IHI 0056B", section "4.5.4 Mapping symbols").
> 
> The patch filters out these symbols at load time, similar to
> "696b97a perf symbols: Ignore mapping symbols on ARM" changes
> done for ARM before V8.

I thought I'd commented that this should probably use the same test that
we already have established elsewhere in the kernel, namely in the
kallsyms and module code:

/*
 * This ignores the intensely annoying "mapping symbols" found
 * in ARM ELF files: $a, $t and $d.
 */
static inline int is_arm_mapping_symbol(const char *str)
{ 
        return str[0] == '$' && strchr("axtd", str[1])
               && (str[2] == '\0' || str[2] == '.');
}

We really shouldn't be writing the same check for the same symbols in
different ways.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH V2 2/3] perf symbols: improve abi compliance in arm mapping symbols handling
  2015-01-22  4:52 ` [PATCH V2 2/3] perf symbols: improve abi compliance in arm mapping symbols handling Victor Kamensky
@ 2015-01-22 15:29   ` Russell King - ARM Linux
  2015-01-22 16:02     ` Victor Kamensky
  0 siblings, 1 reply; 7+ messages in thread
From: Russell King - ARM Linux @ 2015-01-22 15:29 UTC (permalink / raw)
  To: Victor Kamensky
  Cc: Arnaldo Carvalho de Melo, Namhyung Kim, David Ahern, Will Deacon,
	Peter Zijlstra, Paul Mackerras, Ingo Molnar, Adrian Hunter,
	Jiri Olsa, Avi Kivity, Masami Hiramatsu, Anton Blanchard,
	Dave Martin, linux-kernel, linux-arm-kernel

On Wed, Jan 21, 2015 at 08:52:57PM -0800, Victor Kamensky wrote:
> Both Arm and Aarch64 ELF ABI allow mapping symbols be in from
> either "$d" or "$d.<any>". But current code that handles mapping
> symbols only deals with the first, dollar character and a single
> letter, case.
> 
> The patch adds handling of the second case with period
> followed by any characters.
> 
> Suggested-by: Russell King <linux@arm.linux.org.uk>
> Suggested-by: Will Deacon <will.deacon@arm.com>
> Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
> Acked-by: Will Deacon <will.deacon@arm.com>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: Adrian Hunter <adrian.hunter@intel.com>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Avi Kivity <avi@cloudius-systems.com>
> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
> Cc: Anton Blanchard <anton@samba.org>
> Cc: David Ahern <dsahern@gmail.com>
> Cc: Dave Martin <Dave.Martin@arm.com>
> ---
>  tools/perf/util/symbol-elf.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
> index 1e188dd..7fd35d6 100644
> --- a/tools/perf/util/symbol-elf.c
> +++ b/tools/perf/util/symbol-elf.c
> @@ -857,17 +857,16 @@ int dso__load_sym(struct dso *dso, struct map *map,
>  		 * don't identify functions, so will confuse the profile
>  		 * output: */
>  		if (ehdr.e_machine == EM_ARM) {
> -			if (!strcmp(elf_name, "$a") ||
> -			    !strcmp(elf_name, "$d") ||
> -			    !strcmp(elf_name, "$t"))
> +			if (elf_name[0] == '$' && strchr("adt", elf_name[1])
> +			    && (elf_name[2] == '\0' || elf_name[2] == '.'))
>  				continue;
>  		}
>  		/* Reject Aarch64 ELF "mapping symbols": these aren't unique and
>  		 * don't identify functions, so will confuse the profile
>  		 * output: */
>  		if (ehdr.e_machine == EM_AARCH64) {
> -			if (!strcmp(elf_name, "$x") ||
> -			    !strcmp(elf_name, "$d"))
> +			if (elf_name[0] == '$' && strchr("dx", elf_name[1])
> +			    && (elf_name[2] == '\0' || elf_name[2] == '.'))
>  				continue;
>  		}

Why not fix this first?  Then, all you'd need to do would be to change
the test for EM_ARM to EM_ARM or EM_AARCH64, and add the 'x' into the
strchr() string.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH V2 2/3] perf symbols: improve abi compliance in arm mapping symbols handling
  2015-01-22 15:29   ` Russell King - ARM Linux
@ 2015-01-22 16:02     ` Victor Kamensky
  0 siblings, 0 replies; 7+ messages in thread
From: Victor Kamensky @ 2015-01-22 16:02 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Arnaldo Carvalho de Melo, Namhyung Kim, David Ahern, Will Deacon,
	Peter Zijlstra, Paul Mackerras, Ingo Molnar, Adrian Hunter,
	Jiri Olsa, Avi Kivity, Masami Hiramatsu, Anton Blanchard,
	Dave Martin, open list, linux-arm-kernel@lists.infradead.org

On 22 January 2015 at 07:29, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Wed, Jan 21, 2015 at 08:52:57PM -0800, Victor Kamensky wrote:
>> Both Arm and Aarch64 ELF ABI allow mapping symbols be in from
>> either "$d" or "$d.<any>". But current code that handles mapping
>> symbols only deals with the first, dollar character and a single
>> letter, case.
>>
>> The patch adds handling of the second case with period
>> followed by any characters.
>>
>> Suggested-by: Russell King <linux@arm.linux.org.uk>
>> Suggested-by: Will Deacon <will.deacon@arm.com>
>> Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
>> Acked-by: Will Deacon <will.deacon@arm.com>
>> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
>> Cc: Paul Mackerras <paulus@samba.org>
>> Cc: Ingo Molnar <mingo@redhat.com>
>> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
>> Cc: Adrian Hunter <adrian.hunter@intel.com>
>> Cc: Jiri Olsa <jolsa@redhat.com>
>> Cc: Namhyung Kim <namhyung@kernel.org>
>> Cc: Avi Kivity <avi@cloudius-systems.com>
>> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
>> Cc: Anton Blanchard <anton@samba.org>
>> Cc: David Ahern <dsahern@gmail.com>
>> Cc: Dave Martin <Dave.Martin@arm.com>
>> ---
>>  tools/perf/util/symbol-elf.c | 9 ++++-----
>>  1 file changed, 4 insertions(+), 5 deletions(-)
>>
>> diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
>> index 1e188dd..7fd35d6 100644
>> --- a/tools/perf/util/symbol-elf.c
>> +++ b/tools/perf/util/symbol-elf.c
>> @@ -857,17 +857,16 @@ int dso__load_sym(struct dso *dso, struct map *map,
>>                * don't identify functions, so will confuse the profile
>>                * output: */
>>               if (ehdr.e_machine == EM_ARM) {
>> -                     if (!strcmp(elf_name, "$a") ||
>> -                         !strcmp(elf_name, "$d") ||
>> -                         !strcmp(elf_name, "$t"))
>> +                     if (elf_name[0] == '$' && strchr("adt", elf_name[1])
>> +                         && (elf_name[2] == '\0' || elf_name[2] == '.'))
>>                               continue;
>>               }
>>               /* Reject Aarch64 ELF "mapping symbols": these aren't unique and
>>                * don't identify functions, so will confuse the profile
>>                * output: */
>>               if (ehdr.e_machine == EM_AARCH64) {
>> -                     if (!strcmp(elf_name, "$x") ||
>> -                         !strcmp(elf_name, "$d"))
>> +                     if (elf_name[0] == '$' && strchr("dx", elf_name[1])
>> +                         && (elf_name[2] == '\0' || elf_name[2] == '.'))
>>                               continue;
>>               }
>
> Why not fix this first?  Then, all you'd need to do would be to change
> the test for EM_ARM to EM_ARM or EM_AARCH64, and add the 'x' into the
> strchr() string.

In previously discussed [1] I proposed two variants and ask
for people's preferences. Will replied that he did not care and
let me choose that I like.

It seems to me that you more like variant 2 (provided here
for reference again). It would replace patch 1 and patch 2 of
version 2. Please confirm. I don't practically care much and
can use either. I personally preferred variant 1 because in
variant 2 $x will be filtered on ARM V7, but V7 ABI does not
say anything about $x, only Aarch64 does. I.e special symbols
do to match between V7 and V8 exactly. But as it is
already in other places like kallsyms, I agree practically it
may not matter. If you give your node to variant 2 (as below)
I can report this miniseries: Please let me know

Variant 2:

>From c8d08ebddc61203daf21b17c891c26c1d08e14f1 Mon Sep 17 00:00:00 2001
From: Victor Kamensky <victor.kamensky@linaro.org>
Date: Mon, 12 Jan 2015 14:13:36 -0800
Subject: [PATCH 1/2] perf symbols: Ignore mapping symbols on aarch64

Aarch64 ELF files use mapping symbols with special names $x, $d
to identify regions of Aarch64 code (see Aarch64 ELF ABI - "ARM
IHI 0056B", section "4.5.4 Mapping symbols").

The patch filters out these symbols at load time, similar to
"696b97a perf symbols: Ignore mapping symbols on ARM" changes
done for ARM before V8.

Also added handling of mapping symbols that has format
"$d.<any>" and similar for both cases.

Note we are not making difference between EM_ARM and
EM_AARCH64 mapping symbols instead code handles superset
of both.

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Avi Kivity <avi@cloudius-systems.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Anton Blanchard <anton@samba.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Dave Martin <Dave.Martin@arm.com>
---
 tools/perf/util/symbol-elf.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index 06fcd1b..b2eb0f9 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -856,10 +856,9 @@ int dso__load_sym(struct dso *dso, struct map *map,
         /* Reject ARM ELF "mapping symbols": these aren't unique and
          * don't identify functions, so will confuse the profile
          * output: */
-        if (ehdr.e_machine == EM_ARM) {
-            if (!strcmp(elf_name, "$a") ||
-                !strcmp(elf_name, "$d") ||
-                !strcmp(elf_name, "$t"))
+        if (ehdr.e_machine == EM_ARM || ehdr.e_machine == EM_AARCH64) {
+                        if (elf_name[0] == '$' && strchr("adtx", elf_name[1])
+                        && (elf_name[2] == '\0' || elf_name[2] == '.'))
                 continue;
         }

-- 
1.9.3

Thanks,
Victor

[1] https://lkml.org/lkml/2015/1/14/1019

> --
> FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
> according to speedtest.net.

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-01-22 16:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-22  4:52 [PATCH V2 0/3] perf symbols: debuglink and arm mapping symbols changes Victor Kamensky
2015-01-22  4:52 ` [PATCH V2 1/3] perf symbols: Ignore mapping symbols on aarch64 Victor Kamensky
2015-01-22 15:27   ` Russell King - ARM Linux
2015-01-22  4:52 ` [PATCH V2 2/3] perf symbols: improve abi compliance in arm mapping symbols handling Victor Kamensky
2015-01-22 15:29   ` Russell King - ARM Linux
2015-01-22 16:02     ` Victor Kamensky
2015-01-22  4:52 ` [PATCH V2 3/3] perf symbols: debuglink should take symfs option into account Victor Kamensky

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