All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Correctly handle symbols in VDSO
@ 2014-04-01 19:15 Vladimir Nikulichev
  2014-04-07  6:14 ` Namhyung Kim
  0 siblings, 1 reply; 6+ messages in thread
From: Vladimir Nikulichev @ 2014-04-01 19:15 UTC (permalink / raw
  To: linux-perf-users, Peter Zijlstra, Paul Mackerras, Ingo Molnar,
	Arnaldo Carvalho de Melo

pert-report doesn't resolve function names in VDSO:

$ perf report --stdio -g flat,0.0,15,callee --sort pid
...
             8.76%
                0x7fff6b1fe861
                __gettimeofday
                ACE_OS::gettimeofday()
...

In this case symbol values should be adjusted the same way as for executables, relocatable objects and prelinked libraries.

After fix:

$ perf report --stdio -g flat,0.0,15,callee --sort pid
...
             8.76%
                __vdso_gettimeofday
                __gettimeofday
                ACE_OS::gettimeofday()
...

---------------------------------------------------------------------------------------------------------------------------

perf tools: Adjust symbols in VDSO

Signed-off-by: Vladimir Nikulichev <nvs@tbricks.com>

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index 3b7dbf5..9c8b23b 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -6,6 +6,7 @@
 #include <inttypes.h>

 #include "symbol.h"
+#include "vdso.h"
 #include <symbol/kallsyms.h>
 #include "debug.h"

@@ -618,6 +619,8 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
 		GElf_Shdr shdr;
 		ss->adjust_symbols = (ehdr.e_type == ET_EXEC ||
 				ehdr.e_type == ET_REL ||
+				(dso->symsrc_filename == NULL &&
+					is_vdso_map(dso->short_name)) ||
 				elf_section_by_name(elf, &ehdr, &shdr,
 						     ".gnu.prelink_undo",
 						     NULL) != NULL);

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

* Re: [PATCH] Correctly handle symbols in VDSO
  2014-04-01 19:15 [PATCH] Correctly handle symbols in VDSO Vladimir Nikulichev
@ 2014-04-07  6:14 ` Namhyung Kim
  2014-04-08 15:24   ` Vladimir Nikulichev
  0 siblings, 1 reply; 6+ messages in thread
From: Namhyung Kim @ 2014-04-07  6:14 UTC (permalink / raw
  To: Vladimir Nikulichev
  Cc: linux-perf-users, Peter Zijlstra, Paul Mackerras, Ingo Molnar,
	Arnaldo Carvalho de Melo, Jiri Olsa

Hi Vladimir,

On Tue, 1 Apr 2014 23:15:14 +0400, Vladimir Nikulichev wrote:
> pert-report doesn't resolve function names in VDSO:
>
> $ perf report --stdio -g flat,0.0,15,callee --sort pid
> ...
>              8.76%
>                 0x7fff6b1fe861
>                 __gettimeofday
>                 ACE_OS::gettimeofday()
> ...
>
> In this case symbol values should be adjusted the same way as for executables, relocatable objects and prelinked libraries.
>
> After fix:
>
> $ perf report --stdio -g flat,0.0,15,callee --sort pid
> ...
>              8.76%
>                 __vdso_gettimeofday
>                 __gettimeofday
>                 ACE_OS::gettimeofday()
> ...

Tested-by: Namhyung Kim <namhyung@kernel.org>

Just one question below..

>
> ---------------------------------------------------------------------------------------------------------------------------
>
> perf tools: Adjust symbols in VDSO
>
> Signed-off-by: Vladimir Nikulichev <nvs@tbricks.com>
>
> diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
> index 3b7dbf5..9c8b23b 100644
> --- a/tools/perf/util/symbol-elf.c
> +++ b/tools/perf/util/symbol-elf.c
> @@ -6,6 +6,7 @@
>  #include <inttypes.h>
>
>  #include "symbol.h"
> +#include "vdso.h"
>  #include <symbol/kallsyms.h>
>  #include "debug.h"
>
> @@ -618,6 +619,8 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
>  		GElf_Shdr shdr;
>  		ss->adjust_symbols = (ehdr.e_type == ET_EXEC ||
>  				ehdr.e_type == ET_REL ||
> +				(dso->symsrc_filename == NULL &&

Is this really needed?  Just checking is_vdso_map() seems to work well
for me.  Did you have a specific reason to add it?

Thanks,
Namhyung


> +					is_vdso_map(dso->short_name)) ||
>  				elf_section_by_name(elf, &ehdr, &shdr,
>  						     ".gnu.prelink_undo",
>  						     NULL) != NULL);--
> To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] Correctly handle symbols in VDSO
  2014-04-07  6:14 ` Namhyung Kim
@ 2014-04-08 15:24   ` Vladimir Nikulichev
  2014-04-08 15:41     ` Jiri Olsa
  0 siblings, 1 reply; 6+ messages in thread
From: Vladimir Nikulichev @ 2014-04-08 15:24 UTC (permalink / raw
  To: Namhyung Kim
  Cc: linux-perf-users, Peter Zijlstra, Paul Mackerras, Ingo Molnar,
	Arnaldo Carvalho de Melo, Jiri Olsa

Hi Namhyung,

On Apr 7, 2014, at 10:14 AM, Namhyung Kim <namhyung@kernel.org> wrote:

> Just one question below..
> 
>> 
>> ---------------------------------------------------------------------------------------------------------------------------
>> 
>> perf tools: Adjust symbols in VDSO
>> 
>> Signed-off-by: Vladimir Nikulichev <nvs@tbricks.com>
>> 
>> diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
>> index 3b7dbf5..9c8b23b 100644
>> --- a/tools/perf/util/symbol-elf.c
>> +++ b/tools/perf/util/symbol-elf.c
>> @@ -6,6 +6,7 @@
>> #include <inttypes.h>
>> 
>> #include "symbol.h"
>> +#include "vdso.h"
>> #include <symbol/kallsyms.h>
>> #include "debug.h"
>> 
>> @@ -618,6 +619,8 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
>> 		GElf_Shdr shdr;
>> 		ss->adjust_symbols = (ehdr.e_type == ET_EXEC ||
>> 				ehdr.e_type == ET_REL ||
>> +				(dso->symsrc_filename == NULL &&
> 
> Is this really needed?  Just checking is_vdso_map() seems to work well
> for me.  Did you have a specific reason to add it?
> 

Nothing specific, just to don't call string operations in most cases. But here it is only a matter of coding style, of course.
Attaching shorter version of the patch.

----------------------------

perf tools: Adjust symbols in VDSO

Signed-off-by: Vladimir Nikulichev <nvs@tbricks.com>

diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index 3b7dbf5..6864661 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -6,6 +6,7 @@
 #include <inttypes.h>

 #include "symbol.h"
+#include "vdso.h"
 #include <symbol/kallsyms.h>
 #include "debug.h"

@@ -618,6 +619,7 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
 		GElf_Shdr shdr;
 		ss->adjust_symbols = (ehdr.e_type == ET_EXEC ||
 				ehdr.e_type == ET_REL ||
+				is_vdso_map(dso->short_name) ||
 				elf_section_by_name(elf, &ehdr, &shdr,
 						     ".gnu.prelink_undo",
 						     NULL) != NULL);

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

* Re: [PATCH] Correctly handle symbols in VDSO
  2014-04-08 15:24   ` Vladimir Nikulichev
@ 2014-04-08 15:41     ` Jiri Olsa
       [not found]       ` <A7CC2084-4F71-436C-9AEC-394F66A4981E@tbricks.com>
  0 siblings, 1 reply; 6+ messages in thread
From: Jiri Olsa @ 2014-04-08 15:41 UTC (permalink / raw
  To: Vladimir Nikulichev
  Cc: Namhyung Kim, linux-perf-users, Peter Zijlstra, Paul Mackerras,
	Ingo Molnar, Arnaldo Carvalho de Melo, linux-kernel

On Tue, Apr 08, 2014 at 07:24:22PM +0400, Vladimir Nikulichev wrote:
> Hi Namhyung,
> 
> On Apr 7, 2014, at 10:14 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> 
> > Just one question below..
> > 
> >> 
> >> ---------------------------------------------------------------------------------------------------------------------------
> >> 
> >> perf tools: Adjust symbols in VDSO
> >> 
> >> Signed-off-by: Vladimir Nikulichev <nvs@tbricks.com>
> >> 
> >> diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
> >> index 3b7dbf5..9c8b23b 100644
> >> --- a/tools/perf/util/symbol-elf.c
> >> +++ b/tools/perf/util/symbol-elf.c
> >> @@ -6,6 +6,7 @@
> >> #include <inttypes.h>
> >> 
> >> #include "symbol.h"
> >> +#include "vdso.h"
> >> #include <symbol/kallsyms.h>
> >> #include "debug.h"
> >> 
> >> @@ -618,6 +619,8 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
> >> 		GElf_Shdr shdr;
> >> 		ss->adjust_symbols = (ehdr.e_type == ET_EXEC ||
> >> 				ehdr.e_type == ET_REL ||
> >> +				(dso->symsrc_filename == NULL &&
> > 
> > Is this really needed?  Just checking is_vdso_map() seems to work well
> > for me.  Did you have a specific reason to add it?
> > 
> 
> Nothing specific, just to don't call string operations in most cases. But here it is only a matter of coding style, of course.
> Attaching shorter version of the patch.
> 
> ----------------------------
> 
> perf tools: Adjust symbols in VDSO

hi,
could you please put explanation from first email
into the patch changelog?

cc-ing lkml

thanks,
jirka

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

* Re: [PATCH] Correctly handle symbols in VDSO
       [not found]       ` <A7CC2084-4F71-436C-9AEC-394F66A4981E@tbricks.com>
@ 2014-04-09 15:35         ` Jiri Olsa
  2014-04-09 16:13           ` Jiri Olsa
  0 siblings, 1 reply; 6+ messages in thread
From: Jiri Olsa @ 2014-04-09 15:35 UTC (permalink / raw
  To: Vladimir Nikulichev
  Cc: Namhyung Kim, linux-perf-users, Peter Zijlstra, Paul Mackerras,
	Ingo Molnar, Arnaldo Carvalho de Melo, linux-kernel

On Wed, Apr 09, 2014 at 10:46:13AM +0400, Vladimir Nikulichev wrote:
> Hi,
> 
> On Apr 8, 2014, at 7:41 PM, Jiri Olsa <jolsa@redhat.com> wrote:
> 
> > hi,
> > could you please put explanation from first email
> > into the patch changelog?
> > 
> > cc-ing lkml
> > 
> > thanks,
> > jirka
> 
> 
> OK, pasting it together:

ook

hum, your email's encoding kills my 'git am' :-\
also 'perf tools: Adjust symbols in VDSO' should go into the
email subject

I processed this patch by hand this time

thanks,
jirka

> 
> ---------------------------------------------------------------------------------------------------------------------------
> 
> perf tools: Adjust symbols in VDSO
> 
> pert-report doesn't resolve function names in VDSO:
> 
> $ perf report --stdio -g flat,0.0,15,callee --sort pid
> ...
>             8.76%
>                0x7fff6b1fe861
>                __gettimeofday
>                ACE_OS::gettimeofday()
> ...
> 
> In this case symbol values should be adjusted the same way as for executables, relocatable objects and prelinked libraries.
> 
> After fix:
> 
> $ perf report --stdio -g flat,0.0,15,callee --sort pid
> ...
>             8.76%
>                __vdso_gettimeofday
>                __gettimeofday
>                ACE_OS::gettimeofday()
> …
> 
> Signed-off-by: Vladimir Nikulichev <nvs@tbricks.com>
> 
> diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
> index 3b7dbf5..6864661 100644
> --- a/tools/perf/util/symbol-elf.c
> +++ b/tools/perf/util/symbol-elf.c
> @@ -6,6 +6,7 @@
> #include <inttypes.h>
> 
> #include "symbol.h"
> +#include "vdso.h"
> #include <symbol/kallsyms.h>
> #include "debug.h"
> 
> @@ -618,6 +619,7 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
> 		GElf_Shdr shdr;
> 		ss->adjust_symbols = (ehdr.e_type == ET_EXEC ||
> 				ehdr.e_type == ET_REL ||
> +				is_vdso_map(dso->short_name) ||
> 				elf_section_by_name(elf, &ehdr, &shdr,
> 						     ".gnu.prelink_undo",
> 						     NULL) != NULL);

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

* Re: [PATCH] Correctly handle symbols in VDSO
  2014-04-09 15:35         ` Jiri Olsa
@ 2014-04-09 16:13           ` Jiri Olsa
  0 siblings, 0 replies; 6+ messages in thread
From: Jiri Olsa @ 2014-04-09 16:13 UTC (permalink / raw
  To: Vladimir Nikulichev
  Cc: Namhyung Kim, linux-perf-users, Peter Zijlstra, Paul Mackerras,
	Ingo Molnar, Arnaldo Carvalho de Melo, linux-kernel

On Wed, Apr 09, 2014 at 05:35:46PM +0200, Jiri Olsa wrote:
> On Wed, Apr 09, 2014 at 10:46:13AM +0400, Vladimir Nikulichev wrote:
> > Hi,
> > 
> > On Apr 8, 2014, at 7:41 PM, Jiri Olsa <jolsa@redhat.com> wrote:
> > 
> > > hi,
> > > could you please put explanation from first email
> > > into the patch changelog?
> > > 
> > > cc-ing lkml
> > > 
> > > thanks,
> > > jirka
> > 
> > 
> > OK, pasting it together:
> 
> ook
> 
> hum, your email's encoding kills my 'git am' :-\
> also 'perf tools: Adjust symbols in VDSO' should go into the
> email subject
> 
> I processed this patch by hand this time

actually I'll have to ask you to resend your patch
with proper subject and coding, refer to:
  https://www.kernel.org/doc/Documentation/email-clients.txt

  "Emailed patches should be in ASCII or UTF-8 encoding only."

Please CC lkml (linux-kernel@vger.kernel.org). Strangely enough,
I don't see your patch there at the moment.. 

thanks,
jirka

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

end of thread, other threads:[~2014-04-09 16:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-01 19:15 [PATCH] Correctly handle symbols in VDSO Vladimir Nikulichev
2014-04-07  6:14 ` Namhyung Kim
2014-04-08 15:24   ` Vladimir Nikulichev
2014-04-08 15:41     ` Jiri Olsa
     [not found]       ` <A7CC2084-4F71-436C-9AEC-394F66A4981E@tbricks.com>
2014-04-09 15:35         ` Jiri Olsa
2014-04-09 16:13           ` Jiri Olsa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.