[PATCH v3 0/3] Support .gnu_debugdata for symbols in perf

Stephen Brennan posted 3 patches 9 months, 1 week ago
tools/perf/util/compress.h   |  20 +++++++
tools/perf/util/dso.c        |   3 +
tools/perf/util/dso.h        |   1 +
tools/perf/util/lzma.c       |  29 ++++++----
tools/perf/util/symbol-elf.c | 106 ++++++++++++++++++++++++++++++++++-
tools/perf/util/symbol.c     |   2 +
6 files changed, 148 insertions(+), 13 deletions(-)
[PATCH v3 0/3] Support .gnu_debugdata for symbols in perf
Posted by Stephen Brennan 9 months, 1 week ago
Hello all,

This series adds the ability to read symbols from the ".gnu_debugdata" section
of DSOs. More details are the cover letter of v1. This only has one small change
from v2: it adds the missing entry in dso__symtab_origin(). Its lack resulted in
truncating the output of symbols in "perf report -v" -- thanks to Arnaldo for
testing and catching that.

v2: https://lore.kernel.org/linux-perf-users/20250220185512.3357820-1-stephen.s.brennan@oracle.com/
v1: https://lore.kernel.org/linux-perf-users/20250213190542.3249050-1-stephen.s.brennan@oracle.com/

Stephen Brennan (3):
  tools: perf: add dummy functions for !HAVE_LZMA_SUPPORT
  tools: perf: add LZMA decompression from FILE
  tools: perf: support .gnu_debugdata for symbols

 tools/perf/util/compress.h   |  20 +++++++
 tools/perf/util/dso.c        |   3 +
 tools/perf/util/dso.h        |   1 +
 tools/perf/util/lzma.c       |  29 ++++++----
 tools/perf/util/symbol-elf.c | 106 ++++++++++++++++++++++++++++++++++-
 tools/perf/util/symbol.c     |   2 +
 6 files changed, 148 insertions(+), 13 deletions(-)

-- 
2.43.5
Re: [PATCH v3 0/3] Support .gnu_debugdata for symbols in perf
Posted by Namhyung Kim 9 months, 1 week ago
On Fri, 07 Mar 2025 15:22:00 -0800, Stephen Brennan wrote:
> This series adds the ability to read symbols from the ".gnu_debugdata" section
> of DSOs. More details are the cover letter of v1. This only has one small change
> from v2: it adds the missing entry in dso__symtab_origin(). Its lack resulted in
> truncating the output of symbols in "perf report -v" -- thanks to Arnaldo for
> testing and catching that.
> 
> v2: https://lore.kernel.org/linux-perf-users/20250220185512.3357820-1-stephen.s.brennan@oracle.com/
> v1: https://lore.kernel.org/linux-perf-users/20250213190542.3249050-1-stephen.s.brennan@oracle.com/
> 
> [...]
Applied to perf-tools-next, thanks!

Best regards,
Namhyung
Re: [PATCH v3 0/3] Support .gnu_debugdata for symbols in perf
Posted by Arnaldo Carvalho de Melo 9 months, 1 week ago
On Fri, Mar 07, 2025 at 03:22:00PM -0800, Stephen Brennan wrote:
> Hello all,
>
> This series adds the ability to read symbols from the ".gnu_debugdata" section
> of DSOs. More details are the cover letter of v1. This only has one small change
> from v2: it adds the missing entry in dso__symtab_origin(). Its lack resulted in
> truncating the output of symbols in "perf report -v" -- thanks to Arnaldo for
> testing and catching that.
>
> v2: https://lore.kernel.org/linux-perf-users/20250220185512.3357820-1-stephen.s.brennan@oracle.com/
> v1: https://lore.kernel.org/linux-perf-users/20250213190542.3249050-1-stephen.s.brennan@oracle.com/
>
> Stephen Brennan (3):
>   tools: perf: add dummy functions for !HAVE_LZMA_SUPPORT
>   tools: perf: add LZMA decompression from FILE
>   tools: perf: support .gnu_debugdata for symbols

Next time please follow the convention on subject lines in tools/perf:

36e7748d33bf6a82 (perf-tools-next/perf-tools-next) perf tests: Fix data symbol test with LTO builds
e1f5bb18a7b25cac perf report: Fix memory leaks in the hierarchy mode
e242df05ee5f2ab0 perf report: Use map_symbol__copy() when copying callchains
4c3f09e35ca999f6 perf annotate: Return errors from disasm_line__parse_powerpc()
dab8c32ece27c7d8 perf annotate: Add annotation_options.disassembler_used
b0920abe0d529101 perf report: Do not process non-JIT BPF ksymbol events
2c744f38da7aeae7 perf test: Fix leak in "Synthesize attr update" test
41453107bfc30083 perf machine: Fix insertion of PERF_RECORD_KSYMBOL related kernel maps
e0e4e0b8b7fabd8c perf maps: Add missing map__set_kmap_maps() when replacing a kernel map
0d11fab32714a2da perf maps: Fixup maps_by_name when modifying maps_by_address
f7a46e028c394cd4 perf machine: Fixup kernel maps ends after adding extra maps
25d9c0301d36f4d8 perf maps: Set the kmaps for newly created/added kernel maps
99deaf5578cd768f perf maps: Introduce map__set_kmap_maps() for kernel maps
74fb903b212925ca perf script: Fix output type for dynamically allocated core PMU's
957d194163bf983d perf bench: Fix perf bench syscall loop count
b627b443ccfbdd2c perf test: Simplify data symbol test
f04c7ef35256beea perf test: Add timeout to datasym workload
15bcfb96d0ddbc1b perf test: Add trace record and replay test
38672c5033c3aebc perf test: Skip perf trace tests when running as non-root
3fb29a7514e727ca perf test: Skip perf probe tests when running as non-root
⬢ [acme@toolbox perf-tools-next]$

I.e. perf, followed by the tool or class (machine, maps, etc), followed
by : and then the summary, starting with a capital letter.

I retested and everything looks great, so please add my:

Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>

Thanks,

- Arnaldo

>  tools/perf/util/compress.h   |  20 +++++++
>  tools/perf/util/dso.c        |   3 +
>  tools/perf/util/dso.h        |   1 +
>  tools/perf/util/lzma.c       |  29 ++++++----
>  tools/perf/util/symbol-elf.c | 106 ++++++++++++++++++++++++++++++++++-
>  tools/perf/util/symbol.c     |   2 +
>  6 files changed, 148 insertions(+), 13 deletions(-)
> 
> -- 
> 2.43.5
Re: [PATCH v3 0/3] Support .gnu_debugdata for symbols in perf
Posted by Namhyung Kim 9 months, 1 week ago
On Mon, Mar 10, 2025 at 12:52:40PM -0300, Arnaldo Carvalho de Melo wrote:
> On Fri, Mar 07, 2025 at 03:22:00PM -0800, Stephen Brennan wrote:
> > Hello all,
> >
> > This series adds the ability to read symbols from the ".gnu_debugdata" section
> > of DSOs. More details are the cover letter of v1. This only has one small change
> > from v2: it adds the missing entry in dso__symtab_origin(). Its lack resulted in
> > truncating the output of symbols in "perf report -v" -- thanks to Arnaldo for
> > testing and catching that.
> >
> > v2: https://lore.kernel.org/linux-perf-users/20250220185512.3357820-1-stephen.s.brennan@oracle.com/
> > v1: https://lore.kernel.org/linux-perf-users/20250213190542.3249050-1-stephen.s.brennan@oracle.com/
> >
> > Stephen Brennan (3):
> >   tools: perf: add dummy functions for !HAVE_LZMA_SUPPORT
> >   tools: perf: add LZMA decompression from FILE
> >   tools: perf: support .gnu_debugdata for symbols
> 
> Next time please follow the convention on subject lines in tools/perf:
> 
> 36e7748d33bf6a82 (perf-tools-next/perf-tools-next) perf tests: Fix data symbol test with LTO builds
> e1f5bb18a7b25cac perf report: Fix memory leaks in the hierarchy mode
> e242df05ee5f2ab0 perf report: Use map_symbol__copy() when copying callchains
> 4c3f09e35ca999f6 perf annotate: Return errors from disasm_line__parse_powerpc()
> dab8c32ece27c7d8 perf annotate: Add annotation_options.disassembler_used
> b0920abe0d529101 perf report: Do not process non-JIT BPF ksymbol events
> 2c744f38da7aeae7 perf test: Fix leak in "Synthesize attr update" test
> 41453107bfc30083 perf machine: Fix insertion of PERF_RECORD_KSYMBOL related kernel maps
> e0e4e0b8b7fabd8c perf maps: Add missing map__set_kmap_maps() when replacing a kernel map
> 0d11fab32714a2da perf maps: Fixup maps_by_name when modifying maps_by_address
> f7a46e028c394cd4 perf machine: Fixup kernel maps ends after adding extra maps
> 25d9c0301d36f4d8 perf maps: Set the kmaps for newly created/added kernel maps
> 99deaf5578cd768f perf maps: Introduce map__set_kmap_maps() for kernel maps
> 74fb903b212925ca perf script: Fix output type for dynamically allocated core PMU's
> 957d194163bf983d perf bench: Fix perf bench syscall loop count
> b627b443ccfbdd2c perf test: Simplify data symbol test
> f04c7ef35256beea perf test: Add timeout to datasym workload
> 15bcfb96d0ddbc1b perf test: Add trace record and replay test
> 38672c5033c3aebc perf test: Skip perf trace tests when running as non-root
> 3fb29a7514e727ca perf test: Skip perf probe tests when running as non-root
> ⬢ [acme@toolbox perf-tools-next]$
> 
> I.e. perf, followed by the tool or class (machine, maps, etc), followed
> by : and then the summary, starting with a capital letter.

Yep, I can fix them this time but please follow the convention next
time.

> 
> I retested and everything looks great, so please add my:
> 
> Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>

Thanks for the review!
Namhyung

> 
> >  tools/perf/util/compress.h   |  20 +++++++
> >  tools/perf/util/dso.c        |   3 +
> >  tools/perf/util/dso.h        |   1 +
> >  tools/perf/util/lzma.c       |  29 ++++++----
> >  tools/perf/util/symbol-elf.c | 106 ++++++++++++++++++++++++++++++++++-
> >  tools/perf/util/symbol.c     |   2 +
> >  6 files changed, 148 insertions(+), 13 deletions(-)
> > 
> > -- 
> > 2.43.5
Re: [PATCH v3 0/3] Support .gnu_debugdata for symbols in perf
Posted by Stephen Brennan 9 months, 1 week ago
Namhyung Kim <namhyung@kernel.org> writes:
> On Mon, Mar 10, 2025 at 12:52:40PM -0300, Arnaldo Carvalho de Melo wrote:
>> On Fri, Mar 07, 2025 at 03:22:00PM -0800, Stephen Brennan wrote:
>> > Hello all,
>> >
>> > This series adds the ability to read symbols from the ".gnu_debugdata" section
>> > of DSOs. More details are the cover letter of v1. This only has one small change
>> > from v2: it adds the missing entry in dso__symtab_origin(). Its lack resulted in
>> > truncating the output of symbols in "perf report -v" -- thanks to Arnaldo for
>> > testing and catching that.
>> >
>> > v2: https://lore.kernel.org/linux-perf-users/20250220185512.3357820-1-stephen.s.brennan@oracle.com/
>> > v1: https://lore.kernel.org/linux-perf-users/20250213190542.3249050-1-stephen.s.brennan@oracle.com/
>> >
>> > Stephen Brennan (3):
>> >   tools: perf: add dummy functions for !HAVE_LZMA_SUPPORT
>> >   tools: perf: add LZMA decompression from FILE
>> >   tools: perf: support .gnu_debugdata for symbols
>> 
>> Next time please follow the convention on subject lines in tools/perf:
>> 
>> 36e7748d33bf6a82 (perf-tools-next/perf-tools-next) perf tests: Fix data symbol test with LTO builds
>> e1f5bb18a7b25cac perf report: Fix memory leaks in the hierarchy mode
>> e242df05ee5f2ab0 perf report: Use map_symbol__copy() when copying callchains
>> 4c3f09e35ca999f6 perf annotate: Return errors from disasm_line__parse_powerpc()
>> dab8c32ece27c7d8 perf annotate: Add annotation_options.disassembler_used
>> b0920abe0d529101 perf report: Do not process non-JIT BPF ksymbol events
>> 2c744f38da7aeae7 perf test: Fix leak in "Synthesize attr update" test
>> 41453107bfc30083 perf machine: Fix insertion of PERF_RECORD_KSYMBOL related kernel maps
>> e0e4e0b8b7fabd8c perf maps: Add missing map__set_kmap_maps() when replacing a kernel map
>> 0d11fab32714a2da perf maps: Fixup maps_by_name when modifying maps_by_address
>> f7a46e028c394cd4 perf machine: Fixup kernel maps ends after adding extra maps
>> 25d9c0301d36f4d8 perf maps: Set the kmaps for newly created/added kernel maps
>> 99deaf5578cd768f perf maps: Introduce map__set_kmap_maps() for kernel maps
>> 74fb903b212925ca perf script: Fix output type for dynamically allocated core PMU's
>> 957d194163bf983d perf bench: Fix perf bench syscall loop count
>> b627b443ccfbdd2c perf test: Simplify data symbol test
>> f04c7ef35256beea perf test: Add timeout to datasym workload
>> 15bcfb96d0ddbc1b perf test: Add trace record and replay test
>> 38672c5033c3aebc perf test: Skip perf trace tests when running as non-root
>> 3fb29a7514e727ca perf test: Skip perf probe tests when running as non-root
>> ⬢ [acme@toolbox perf-tools-next]$
>> 
>> I.e. perf, followed by the tool or class (machine, maps, etc), followed
>> by : and then the summary, starting with a capital letter.
>
> Yep, I can fix them this time but please follow the convention next
> time.

Thank you for the fix-up! I will use that style going forward.

>> 
>> I retested and everything looks great, so please add my:
>> 
>> Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>

And thanks Arnaldo for the test & review!

Stephen

> Thanks for the review!
> Namhyung
>
>> 
>> >  tools/perf/util/compress.h   |  20 +++++++
>> >  tools/perf/util/dso.c        |   3 +
>> >  tools/perf/util/dso.h        |   1 +
>> >  tools/perf/util/lzma.c       |  29 ++++++----
>> >  tools/perf/util/symbol-elf.c | 106 ++++++++++++++++++++++++++++++++++-
>> >  tools/perf/util/symbol.c     |   2 +
>> >  6 files changed, 148 insertions(+), 13 deletions(-)
>> > 
>> > -- 
>> > 2.43.5