From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Leo Yan <leo.yan@linaro.org>
Cc: Ajay Kaher <akaher@vmware.com>,
peterz@infradead.org, mingo@redhat.com, mark.rutland@arm.com,
alexander.shishkin@linux.intel.com, jolsa@kernel.org,
namhyung@kernel.org, rostedt@goodmis.org,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
srivatsab@vmware.com, srivatsa@csail.mit.edu,
amakhalov@vmware.com, vsirnapalli@vmware.com
Subject: Re: [PATCH] perf symbol: correction while adjusting symbol
Date: Thu, 24 Nov 2022 09:55:13 -0300 [thread overview]
Message-ID: <Y39psTnUYxwWt1qo@kernel.org> (raw)
In-Reply-To: <Y38+NGjF1tZNHkwr@leoy-yangtze.lan>
Em Thu, Nov 24, 2022 at 05:50:23PM +0800, Leo Yan escreveu:
> Hi Ajay,
>
> On Wed, Nov 23, 2022 at 03:48:16PM +0530, Ajay Kaher wrote:
> > perf doesn't provide proper symbol information for specially crafted
> > .debug files.
> >
> > Sometimes .debug file may not have similar program header as runtime
> > ELF file. For example if we generate .debug file using objcopy
> > --only-keep-debug resulting file will not contain .text, .data and
> > other runtime sections. That means corresponding program headers will
> > have zero FileSiz and modified Offset.
> >
> > Example: program header of text section of libxxx.so:
> >
> > Type Offset VirtAddr PhysAddr
> > FileSiz MemSiz Flags Align
> > LOAD 0x00000000003d3000 0x00000000003d3000 0x00000000003d3000
> > 0x000000000055ae80 0x000000000055ae80 R E 0x1000
> >
> > Same program header after executing:
> > objcopy --only-keep-debug libxxx.so libxxx.so.debug
> >
> > LOAD 0x0000000000001000 0x00000000003d3000 0x00000000003d3000
> > 0x0000000000000000 0x000000000055ae80 R E 0x1000
> >
> > Offset and FileSiz have been changed.
> >
> > Following formula will not provide correct value, if program header
> > taken from .debug file (syms_ss):
> >
> > sym.st_value -= phdr.p_vaddr - phdr.p_offset;
> >
> > Correct program header information is located inside runtime ELF
> > file (runtime_ss).
> >
> > Fixes: 2d86612aacb7 ("perf symbol: Correct address for bss symbols")
> > Signed-off-by: Ajay Kaher <akaher@vmware.com>
>
>
> Just curious how you can produce this issue? IIUC, the runtime symbol
> files are copied into .debug folder and they can be found by perf tool
> by matching build ID. Seems to me, you manully use
> "objcopy --only-keep-debug" command to strip runtime info from elf files
> under .debug folder. Do I understand correctly?
>
> Though I have above question, this patch itself looks good to me,
> thanks for the fixing!
>
> Reviewed-by: Leo Yan <leo.yan@linaro.org>
Had to apply it manually, as it was done on a codebase older than this:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6d518ac7be6223811ab947897273b1bbef846180
author Ian Rogers <irogers@google.com> 2022-07-31 09:49:23 -0700
committer Arnaldo Carvalho de Melo <acme@redhat.com> 2022-08-01 09:30:36 -0300
@@ -1305,16 +1305,29 @@ dso__load_sym_internal(struct dso *dso, struct map *map, struct symsrc *syms_ss,
if (elf_read_program_header(syms_ss->elf,
(u64)sym.st_value, &phdr)) {
- pr_warning("%s: failed to find program header for "
+ pr_debug4("%s: failed to find program header for "
"symbol: %s st_value: %#" PRIx64 "\n",
__func__, elf_name, (u64)sym.st_value);
prev parent reply other threads:[~2022-11-24 12:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-23 10:18 [PATCH] perf symbol: correction while adjusting symbol Ajay Kaher
2022-11-24 9:50 ` Leo Yan
2022-11-24 10:20 ` Ajay Kaher
2022-11-24 12:55 ` Arnaldo Carvalho de Melo [this message]
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=Y39psTnUYxwWt1qo@kernel.org \
--to=acme@kernel.org \
--cc=akaher@vmware.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=amakhalov@vmware.com \
--cc=jolsa@kernel.org \
--cc=leo.yan@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=srivatsa@csail.mit.edu \
--cc=srivatsab@vmware.com \
--cc=vsirnapalli@vmware.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 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).