Re: [linux-next:master] [perf test] 54a23bff77: perf-sanity-tests.test_addr2line_inline_unwinding.fail
From: Ian Rogers
Date: Thu Feb 12 2026 - 13:50:14 EST
On Thu, Feb 12, 2026 at 6:16 AM kernel test robot <oliver.sang@xxxxxxxxx> wrote:
>
>
> Hello,
>
>
> for new added "test addr2line inline unwinding", we found it failed consistently
> in our tests. not sure if we miss any dependency. below report is FYI.
>
>
> kernel test robot noticed "perf-sanity-tests.test_addr2line_inline_unwinding.fail" on:
>
> commit: 54a23bff770961e024e2c61cd1f46888190c3e79 ("perf test: Test addr2line unwinding works with inline functions")
> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master
>
>
> in testcase: perf-sanity-tests
> version:
> with following parameters:
>
> perf_compiler: clang
> group: group-02
>
>
>
> config: x86_64-rhel-9.4-bpf
> compiler: gcc-14
> test machine: 20 threads 1 sockets (Commet Lake) with 16G memory
>
> (please refer to attached dmesg/kmsg for entire log/backtrace)
>
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-lkp/202602122137.a1396559-lkp@xxxxxxxxx
>
>
> The kernel config and materials to reproduce are available at:
> https://download.01.org/0day-ci/archive/20260212/202602122137.a1396559-lkp@xxxxxxxxx
>
>
> 2026-02-10 04:50:32 sudo ASAN_OPTIONS=fast_unwind_on_malloc=0 /usr/src/linux-perf-x86_64-rhel-9.4-bpf-54a23bff770961e024e2c61cd1f46888190c3e79/tools/perf/perf test 76 -v
> 76: test addr2line inline unwinding : Running (1 active)
> --- start ---
> test child forked, pid 11320
> Inline unwinding verification test
> [ perf record: Woken up 136 times to write data ]
> [ perf record: Captured and wrote 33.858 MB /tmp/perf-test-inline-addr2line.v74NZkItW4/perf.data (4206 samples) ]
>
> =================================================================
> ==11324==ERROR: LeakSanitizer: detected memory leaks
>
> Direct leak of 61808 byte(s) in 8 object(s) allocated from:
> #0 0x7fb5922e0610 in calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77
> #1 0x7fb5920c1808 (/lib/x86_64-linux-gnu/libelf.so.1+0x3808) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #2 0x7fb5920c25f9 (/lib/x86_64-linux-gnu/libelf.so.1+0x45f9) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #3 0x5560ff9ea997 in symsrc__init util/symbol-elf.c:1164
> #4 0x5560ff56702e in dso__load util/symbol.c:1795
> #5 0x5560ff5fb064 in map__load util/map.c:351
> #6 0x5560ff5fb44b in map__find_symbol util/map.c:385
> #7 0x5560ff47a46d in thread__find_symbol util/event.c:725
> #8 0x5560ffa84913 in __report_module util/unwind-libdw.c:54
> #9 0x5560ffa85240 in report_module util/unwind-libdw.c:117
> #10 0x5560ffa86a99 in frame_callback util/unwind-libdw.c:248
> #11 0x7fb59206dae2 in dwfl_thread_getframes (/lib/x86_64-linux-gnu/libdw.so.1+0x78ae2) (BuildId: bafe9cb5bbbe6cee778d0d137730ea5c223d553e)
> #12 0x7fb59206de53 in dwfl_getthread_frames (/lib/x86_64-linux-gnu/libdw.so.1+0x78e53) (BuildId: bafe9cb5bbbe6cee778d0d137730ea5c223d553e)
> #13 0x5560ffa8763d in unwind__get_entries util/unwind-libdw.c:307
> #14 0x5560ff5f2dde in thread__resolve_callchain_unwind util/machine.c:2977
> #15 0x5560ff5f2f32 in __thread__resolve_callchain util/machine.c:3004
> #16 0x5560ff5c80c0 in sample__for_each_callchain_node util/callchain.c:1818
> #17 0x5560ff4132c6 in build_id__mark_dso_hit util/build-id.c:77
> #18 0x5560fef31015 in process_sample_event /usr/src/perf_selftests-x86_64-rhel-9.4-bpf-54a23bff770961e024e2c61cd1f46888190c3e79/tools/perf/builtin-record.c:1504
> #19 0x5560ff61d75e in evlist__deliver_sample util/session.c:1276
> #20 0x5560ff61f490 in machines__deliver_event util/session.c:1432
> #21 0x5560ff6210b1 in perf_session__deliver_event util/session.c:1523
> #22 0x5560ff60c775 in ordered_events__deliver_event util/session.c:134
> #23 0x5560ff64a011 in do_flush util/ordered-events.c:245
> #24 0x5560ff64aeb6 in __ordered_events__flush util/ordered-events.c:324
> #25 0x5560ff64b3c7 in ordered_events__flush util/ordered-events.c:342
> #26 0x5560ff617d42 in perf_event__process_finished_round util/session.c:787
> #27 0x5560ff621c1d in perf_session__process_user_event util/session.c:1583
Hmm.. this looks a lot like this 1 liner fix is missing:
https://lore.kernel.org/lkml/20260117052849.2205545-2-irogers@xxxxxxxxxx/
but it is in linux-next:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/tools/perf/util/symbol-elf.c?id=92d65d9c31621befe0a5f7c0bd43bd217613c6b6
> Direct leak of 4424 byte(s) in 1 object(s) allocated from:
> #0 0x7fb5922e0610 in calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77
> #1 0x7fb5920c1808 (/lib/x86_64-linux-gnu/libelf.so.1+0x3808) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #2 0x7fb5920c25f9 (/lib/x86_64-linux-gnu/libelf.so.1+0x45f9) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #3 0x5560ff9ea997 in symsrc__init util/symbol-elf.c:1164
> #4 0x5560ff56702e in dso__load util/symbol.c:1795
> #5 0x5560ff5fb064 in map__load util/map.c:351
> #6 0x5560ff5fb44b in map__find_symbol util/map.c:385
> #7 0x5560ff47a46d in thread__find_symbol util/event.c:725
> #8 0x5560ffa84913 in __report_module util/unwind-libdw.c:54
> #9 0x5560ffa85240 in report_module util/unwind-libdw.c:117
> #10 0x5560ffa874ca in unwind__get_entries util/unwind-libdw.c:299
> #11 0x5560ff5f2dde in thread__resolve_callchain_unwind util/machine.c:2977
> #12 0x5560ff5f2f32 in __thread__resolve_callchain util/machine.c:3004
> #13 0x5560ff5c80c0 in sample__for_each_callchain_node util/callchain.c:1818
> #14 0x5560ff4132c6 in build_id__mark_dso_hit util/build-id.c:77
> #15 0x5560fef31015 in process_sample_event /usr/src/perf_selftests-x86_64-rhel-9.4-bpf-54a23bff770961e024e2c61cd1f46888190c3e79/tools/perf/builtin-record.c:1504
> #16 0x5560ff61d75e in evlist__deliver_sample util/session.c:1276
> #17 0x5560ff61f490 in machines__deliver_event util/session.c:1432
> #18 0x5560ff6210b1 in perf_session__deliver_event util/session.c:1523
> #19 0x5560ff60c775 in ordered_events__deliver_event util/session.c:134
> #20 0x5560ff64a011 in do_flush util/ordered-events.c:245
> #21 0x5560ff64aeb6 in __ordered_events__flush util/ordered-events.c:324
> #22 0x5560ff64b3c7 in ordered_events__flush util/ordered-events.c:342
> #23 0x5560ff617d42 in perf_event__process_finished_round util/session.c:787
> #24 0x5560ff621c1d in perf_session__process_user_event util/session.c:1583
> #25 0x5560ff6249ac in perf_session__process_event util/session.c:1805
> #26 0x5560ff62c265 in process_simple util/session.c:2399
> #27 0x5560ff62b225 in reader__read_event util/session.c:2328
>
> Indirect leak of 18368 byte(s) in 8 object(s) allocated from:
> #0 0x7fb5922e0c57 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
> #1 0x7fb5920c9550 (/lib/x86_64-linux-gnu/libelf.so.1+0xb550) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #2 0x7fb5920ca517 (/lib/x86_64-linux-gnu/libelf.so.1+0xc517) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #3 0x7fb5920ca0b1 in elf_rawdata (/lib/x86_64-linux-gnu/libelf.so.1+0xc0b1) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #4 0x5560ff9e0c10 in elf_section_by_name util/symbol-elf.c:193
> #5 0x5560ff9e9ae1 in read_gnu_debugdata util/symbol-elf.c:1086
Here is the read_gnu_debugdata, so "type ==
DSO_BINARY_TYPE__GNU_DEBUGDATA" on line 1171 should be true. I'm
failing to eyeball where there is a missing elf_end (the allocation
happens inside an elf_begin). The code is:
```
Elf *embedded = read_gnu_debugdata(dso, elf, name, &new_fd);
if (!embedded)
goto out_elf_end;
elf_end(elf);
...
out_elf_end:
elf_end(elf);
```
So I believe the issue is that the fix above wasn't applied when this
test was run, but I'm not sure how that could have happened. Fwiw,
local testing didn't reproduce the issue.
Thanks,
Ian
> #6 0x5560ff9eaac5 in symsrc__init util/symbol-elf.c:1173
> #7 0x5560ff56702e in dso__load util/symbol.c:1795
> #8 0x5560ff5fb064 in map__load util/map.c:351
> #9 0x5560ff5fb44b in map__find_symbol util/map.c:385
> #10 0x5560ff47a46d in thread__find_symbol util/event.c:725
> #11 0x5560ffa84913 in __report_module util/unwind-libdw.c:54
> #12 0x5560ffa85240 in report_module util/unwind-libdw.c:117
> #13 0x5560ffa86a99 in frame_callback util/unwind-libdw.c:248
> #14 0x7fb59206dae2 in dwfl_thread_getframes (/lib/x86_64-linux-gnu/libdw.so.1+0x78ae2) (BuildId: bafe9cb5bbbe6cee778d0d137730ea5c223d553e)
> #15 0x7fb59206de53 in dwfl_getthread_frames (/lib/x86_64-linux-gnu/libdw.so.1+0x78e53) (BuildId: bafe9cb5bbbe6cee778d0d137730ea5c223d553e)
> #16 0x5560ffa8763d in unwind__get_entries util/unwind-libdw.c:307
> #17 0x5560ff5f2dde in thread__resolve_callchain_unwind util/machine.c:2977
> #18 0x5560ff5f2f32 in __thread__resolve_callchain util/machine.c:3004
> #19 0x5560ff5c80c0 in sample__for_each_callchain_node util/callchain.c:1818
> #20 0x5560ff4132c6 in build_id__mark_dso_hit util/build-id.c:77
> #21 0x5560fef31015 in process_sample_event /usr/src/perf_selftests-x86_64-rhel-9.4-bpf-54a23bff770961e024e2c61cd1f46888190c3e79/tools/perf/builtin-record.c:1504
> #22 0x5560ff61d75e in evlist__deliver_sample util/session.c:1276
> #23 0x5560ff61f490 in machines__deliver_event util/session.c:1432
> #24 0x5560ff6210b1 in perf_session__deliver_event util/session.c:1523
> #25 0x5560ff60c775 in ordered_events__deliver_event util/session.c:134
> #26 0x5560ff64a011 in do_flush util/ordered-events.c:245
> #27 0x5560ff64aeb6 in __ordered_events__flush util/ordered-events.c:324
>
> Indirect leak of 3203 byte(s) in 8 object(s) allocated from:
> #0 0x7fb5922e0c57 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
> #1 0x7fb5920ca3fa (/lib/x86_64-linux-gnu/libelf.so.1+0xc3fa) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #2 0x7fb5920ca0b1 in elf_rawdata (/lib/x86_64-linux-gnu/libelf.so.1+0xc0b1) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #3 0x5560ff9e0c10 in elf_section_by_name util/symbol-elf.c:193
> #4 0x5560ff9e9ae1 in read_gnu_debugdata util/symbol-elf.c:1086
> #5 0x5560ff9eaac5 in symsrc__init util/symbol-elf.c:1173
> #6 0x5560ff56702e in dso__load util/symbol.c:1795
> #7 0x5560ff5fb064 in map__load util/map.c:351
> #8 0x5560ff5fb44b in map__find_symbol util/map.c:385
> #9 0x5560ff47a46d in thread__find_symbol util/event.c:725
> #10 0x5560ffa84913 in __report_module util/unwind-libdw.c:54
> #11 0x5560ffa85240 in report_module util/unwind-libdw.c:117
> #12 0x5560ffa86a99 in frame_callback util/unwind-libdw.c:248
> #13 0x7fb59206dae2 in dwfl_thread_getframes (/lib/x86_64-linux-gnu/libdw.so.1+0x78ae2) (BuildId: bafe9cb5bbbe6cee778d0d137730ea5c223d553e)
> #14 0x7fb59206de53 in dwfl_getthread_frames (/lib/x86_64-linux-gnu/libdw.so.1+0x78e53) (BuildId: bafe9cb5bbbe6cee778d0d137730ea5c223d553e)
> #15 0x5560ffa8763d in unwind__get_entries util/unwind-libdw.c:307
> #16 0x5560ff5f2dde in thread__resolve_callchain_unwind util/machine.c:2977
> #17 0x5560ff5f2f32 in __thread__resolve_callchain util/machine.c:3004
> #18 0x5560ff5c80c0 in sample__for_each_callchain_node util/callchain.c:1818
> #19 0x5560ff4132c6 in build_id__mark_dso_hit util/build-id.c:77
> #20 0x5560fef31015 in process_sample_event /usr/src/perf_selftests-x86_64-rhel-9.4-bpf-54a23bff770961e024e2c61cd1f46888190c3e79/tools/perf/builtin-record.c:1504
> #21 0x5560ff61d75e in evlist__deliver_sample util/session.c:1276
> #22 0x5560ff61f490 in machines__deliver_event util/session.c:1432
> #23 0x5560ff6210b1 in perf_session__deliver_event util/session.c:1523
> #24 0x5560ff60c775 in ordered_events__deliver_event util/session.c:134
> #25 0x5560ff64a011 in do_flush util/ordered-events.c:245
> #26 0x5560ff64aeb6 in __ordered_events__flush util/ordered-events.c:324
> #27 0x5560ff64b3c7 in ordered_events__flush util/ordered-events.c:342
>
> Indirect leak of 1280 byte(s) in 1 object(s) allocated from:
> #0 0x7fb5922e0c57 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
> #1 0x7fb5920c9550 (/lib/x86_64-linux-gnu/libelf.so.1+0xb550) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #2 0x7fb5920ca517 (/lib/x86_64-linux-gnu/libelf.so.1+0xc517) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #3 0x7fb5920ca0b1 in elf_rawdata (/lib/x86_64-linux-gnu/libelf.so.1+0xc0b1) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #4 0x5560ff9e0c10 in elf_section_by_name util/symbol-elf.c:193
> #5 0x5560ff9e9ae1 in read_gnu_debugdata util/symbol-elf.c:1086
> #6 0x5560ff9eaac5 in symsrc__init util/symbol-elf.c:1173
> #7 0x5560ff56702e in dso__load util/symbol.c:1795
> #8 0x5560ff5fb064 in map__load util/map.c:351
> #9 0x5560ff5fb44b in map__find_symbol util/map.c:385
> #10 0x5560ff47a46d in thread__find_symbol util/event.c:725
> #11 0x5560ffa84913 in __report_module util/unwind-libdw.c:54
> #12 0x5560ffa85240 in report_module util/unwind-libdw.c:117
> #13 0x5560ffa874ca in unwind__get_entries util/unwind-libdw.c:299
> #14 0x5560ff5f2dde in thread__resolve_callchain_unwind util/machine.c:2977
> #15 0x5560ff5f2f32 in __thread__resolve_callchain util/machine.c:3004
> #16 0x5560ff5c80c0 in sample__for_each_callchain_node util/callchain.c:1818
> #17 0x5560ff4132c6 in build_id__mark_dso_hit util/build-id.c:77
> #18 0x5560fef31015 in process_sample_event /usr/src/perf_selftests-x86_64-rhel-9.4-bpf-54a23bff770961e024e2c61cd1f46888190c3e79/tools/perf/builtin-record.c:1504
> #19 0x5560ff61d75e in evlist__deliver_sample util/session.c:1276
> #20 0x5560ff61f490 in machines__deliver_event util/session.c:1432
> #21 0x5560ff6210b1 in perf_session__deliver_event util/session.c:1523
> #22 0x5560ff60c775 in ordered_events__deliver_event util/session.c:134
> #23 0x5560ff64a011 in do_flush util/ordered-events.c:245
> #24 0x5560ff64aeb6 in __ordered_events__flush util/ordered-events.c:324
> #25 0x5560ff64b3c7 in ordered_events__flush util/ordered-events.c:342
> #26 0x5560ff617d42 in perf_event__process_finished_round util/session.c:787
> #27 0x5560ff621c1d in perf_session__process_user_event util/session.c:1583
>
> Indirect leak of 190 byte(s) in 1 object(s) allocated from:
> #0 0x7fb5922e0c57 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
> #1 0x7fb5920ca3fa (/lib/x86_64-linux-gnu/libelf.so.1+0xc3fa) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #2 0x7fb5920ca0b1 in elf_rawdata (/lib/x86_64-linux-gnu/libelf.so.1+0xc0b1) (BuildId: d6a40be9eadcbcb0562b7bb13bbe81166e82cc40)
> #3 0x5560ff9e0c10 in elf_section_by_name util/symbol-elf.c:193
> #4 0x5560ff9e9ae1 in read_gnu_debugdata util/symbol-elf.c:1086
> #5 0x5560ff9eaac5 in symsrc__init util/symbol-elf.c:1173
> #6 0x5560ff56702e in dso__load util/symbol.c:1795
> #7 0x5560ff5fb064 in map__load util/map.c:351
> #8 0x5560ff5fb44b in map__find_symbol util/map.c:385
> #9 0x5560ff47a46d in thread__find_symbol util/event.c:725
> #10 0x5560ffa84913 in __report_module util/unwind-libdw.c:54
> #11 0x5560ffa85240 in report_module util/unwind-libdw.c:117
> #12 0x5560ffa874ca in unwind__get_entries util/unwind-libdw.c:299
> #13 0x5560ff5f2dde in thread__resolve_callchain_unwind util/machine.c:2977
> #14 0x5560ff5f2f32 in __thread__resolve_callchain util/machine.c:3004
> #15 0x5560ff5c80c0 in sample__for_each_callchain_node util/callchain.c:1818
> #16 0x5560ff4132c6 in build_id__mark_dso_hit util/build-id.c:77
> #17 0x5560fef31015 in process_sample_event /usr/src/perf_selftests-x86_64-rhel-9.4-bpf-54a23bff770961e024e2c61cd1f46888190c3e79/tools/perf/builtin-record.c:1504
> #18 0x5560ff61d75e in evlist__deliver_sample util/session.c:1276
> #19 0x5560ff61f490 in machines__deliver_event util/session.c:1432
> #20 0x5560ff6210b1 in perf_session__deliver_event util/session.c:1523
> #21 0x5560ff60c775 in ordered_events__deliver_event util/session.c:134
> #22 0x5560ff64a011 in do_flush util/ordered-events.c:245
> #23 0x5560ff64aeb6 in __ordered_events__flush util/ordered-events.c:324
> #24 0x5560ff64b3c7 in ordered_events__flush util/ordered-events.c:342
> #25 0x5560ff617d42 in perf_event__process_finished_round util/session.c:787
> #26 0x5560ff621c1d in perf_session__process_user_event util/session.c:1583
> #27 0x5560ff6249ac in perf_session__process_event util/session.c:1805
>
> SUMMARY: AddressSanitizer: 89273 byte(s) leaked in 27 allocation(s).
> Unexpected signal in test_inlinedloop
> ---- end(-1) ----
> 76: test addr2line inline unwinding : FAILED!
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>