From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Thomas Richter <tmricht@linux.ibm.com>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
gor@linux.ibm.com, sumanthk@linux.ibm.com,
heiko.carstens@de.ibm.com
Subject: Re: [PATCH] perf symbol: Fix kernel symbol address display
Date: Fri, 24 Apr 2020 15:23:36 -0300 [thread overview]
Message-ID: <20200424182336.GO19437@kernel.org> (raw)
In-Reply-To: <db6de799-564a-273e-99ad-40817f2b970a@linux.ibm.com>
Em Fri, Apr 24, 2020 at 08:01:22PM +0200, Thomas Richter escreveu:
> On 4/24/20 5:06 PM, Arnaldo Carvalho de Melo wrote:
> > Em Fri, Apr 24, 2020 at 02:37:01PM +0200, Thomas Richter escreveu:
> >> On 4/20/20 10:46 PM, Arnaldo Carvalho de Melo wrote:
> >>> Em Wed, Apr 15, 2020 at 09:07:44AM +0200, Thomas Richter escreveu:
> >>>> Running commands
> >>>>
> >>>> ./perf record -e rb0000 -- find .
> >>>> ./perf report -v
> >>>
> >>> Or when pressing 'V' in the TUI.
> >>>
> >>>> reveals symbol names and its addresses. There is a mismatch between
> >>>
> >>> Yeah, an address that at some point was put there to help with debugging
> >>> the symbol resolution, IIRC how it looked like when looking at
> >>>
> >>> readelf -sW vmlinux
> >>>
> >>> Or any other DSO, for instance, for a glibc symbol here:
> >>>
> >>> Using 'perf report -s pid,dso,sym' then pressing 'V':
> >>>
> >>> 1.55% 20325:perf /usr/lib64/libc-2.30.so 0x161825 B [.] __strlen_avx2
> >>>
> >>> [acme@five perf]$ readelf -sW /usr/lib64/libc-2.30.so | grep strlen_avx2
> >>> 24371: 0000000000161810 414 FUNC LOCAL DEFAULT 15 __strlen_avx2
> >>> [acme@five perf]$
> >>>
> >>> Can you check if doing in /lib/modules/.../build/vmlinux produces what
> >>> appears when 'V' is in place?
> >>>
> >>> And perhaps we can also show the DSO offset and the rip as it gets laid
> >>> out in memory in the end? So we have all the informations?
> >>>
> >>> - Arnaldo
> >>>
> >>
> >> Arnaldo,
> >>
> >> having verified this also works in the TUI mode using 'V', are you going to pick
> >> this patch?
> >
> > That would be a change in behaviour, the original intent was to show the
> > value one would get from the ELF symbol table, isn't that the case?
> >
>
> I think there is a misunderstanding.
>
> Your example above refers to libc, which shows the addresses
> correctly (on x86 and s390). I was refering to the kernel dso.
> The issue only shows up on the kernel DSO (vmlinux and kallsyms)
>
> When I use the -v option (or 'V' in TUI) I get this
>
> 3.55% find /lib/modules/.../build/vmlinux 0xf11ec v [k] check_chain_key
> ^^^^^^^
> This address is not correct as compared to readelf on vmlinux file:
>
> [root@m35lp76 linux]# readelf -sW vmlinux| fgrep check_chain_key
> 20698: 00000000001f0c70 486 FUNC LOCAL DEFAULT 1 check_chain_key
> [root@m35lp76 linux]#
>
> The problem are the mapping functions with are applied for the kernel DSO.
> In dso__process_kernel_symbol() the mapping is adjusted (around line 903)
> and function hist_entry_iter_add() saves the modified address in the
> struct hist_entry->ip. This address is used from now on and printed.
>
> Let me know and I will double check this and rework the commit message
> as it was not good enough.
Yeah, this may be me not understanding something right, I saw this was a
corner case, that only happens in debug mode (ok, better provide good
info here...), so I haven't devoted more than cursory attention to this
and may be making a bad judgement, so I thought that since this doesn't
seems urgent, better leave it to when I manage to have solid time to
devote to this or someone else looks at this.
Sorry, but these have been difficult time for everybody, and I fear, for
me, I have to prioritise all the time.
- Arnaldo
> Thanks.
>
>
> > That is why I asked if you would think that providing the information
> > you want, which is matching to what is in kallsyms, would be
> > interesting, which I think it is, but how? showing the vmlinux offset
> > somehow?
> >
>
> --
> Thomas Richter, Dept 3252, IBM s390 Linux Development, Boeblingen, Germany
> --
> Vorsitzender des Aufsichtsrats: Matthias Hartmann
> Geschäftsführung: Dirk Wittkopp
> Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294
--
- Arnaldo
next prev parent reply other threads:[~2020-04-24 18:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-15 7:07 [PATCH] perf symbol: Fix kernel symbol address display Thomas Richter
2020-04-20 20:46 ` Arnaldo Carvalho de Melo
2020-04-21 11:18 ` Thomas Richter
2020-04-24 12:37 ` Thomas Richter
2020-04-24 15:06 ` Arnaldo Carvalho de Melo
2020-04-24 18:01 ` Thomas Richter
2020-04-24 18:23 ` Arnaldo Carvalho de Melo [this message]
2020-04-27 12:23 ` Thomas Richter
2020-05-08 13:04 ` [tip: perf/core] " tip-bot2 for Thomas Richter
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=20200424182336.GO19437@kernel.org \
--to=arnaldo.melo@gmail.com \
--cc=gor@linux.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=sumanthk@linux.ibm.com \
--cc=tmricht@linux.ibm.com \
/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 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.