elfutils 0.193 released

2025-04-25 Thread Aaron Merey
ELFUTILS 0.193 "Bugs erased, stacks traced" - https://elfutils.org/ A new release of elfutils is available at: ftp://sourceware.org/pub/elfutils/0.193/ or https://sourceware.org/elfutils/ftp/0.193/ Visit us on the Libera.Chat irc channel #elfutils * NEWS * debuginfod: Add CORS (webapp access) s

Re: [PATCH v6 01/12] libebl [1/12]: api for perf register handling, start with x86_64

2025-04-25 Thread Serhei Makarov
On Fri, Apr 25, 2025, at 12:02 PM, Aaron Merey wrote: >> First patch of a series that reworks eu-stacktrace functionality >> into a library interface for other profiling tools. > > Thanks I've approved and merged this series with two changes: > Signed-off-by added to each commit message and a rw

[PATCH v6 01/12] libebl [1/12]: api for perf register handling, start with x86_64

2025-04-25 Thread Serhei Makarov
Changes for v6: - Minor fixes as requested. Changes for v2: - Merged commit 11 into commit 1 (both sample_base_addr/sample_pc and set_initial_registers_sample make sense to introduce in the same commit). - Added i386 backend and factored out common code. * * * First patch of a series that

Re: [PATCH v6 01/12] libebl [1/12]: api for perf register handling, start with x86_64

2025-04-25 Thread Aaron Merey
On Fri, Apr 25, 2025 at 10:56 AM Serhei Makarov wrote: > > Changes for v6: > > - Minor fixes as requested. > > Changes for v2: > > - Merged commit 11 into commit 1 (both sample_base_addr/sample_pc and > set_initial_registers_sample make sense to introduce in the same > commit). > > - Added i38

[PATCH v6 05/12] libdwfl_stacktrace [5/12]: introduce Dwflst_Process_Tracker

2025-04-25 Thread Serhei Makarov
Changes for v4: - Separate out libdwfl_stacktrace, as requested. * * * New data structure to coordinate caching Elf data among multiple Dwfl structs attached to different processes. Meant to reduce the overhead for profilers that use elfutils for unwinding. The caching is well-justified, as the

[PATCH v6 12/12] eu-stacktrace [12/12]: use dwflst_perf_sample_getframes

2025-04-25 Thread Serhei Makarov
Changes for v4: - Separate out libdwfl_stacktrace, as requested. Changes for v3: - Fix initialization of elf in sysprof_init_dwfl (previously triggered -Wmaybe-uninitialized). * * * Remove the code from src/stacktrace.c that is now covered by libdwfl_stacktrace/dwflst_perf_frame.c and dwflst

[PATCH v6 11/12] libdwfl_stacktrace [11/12]: add dwflst_perf_sample_getframes

2025-04-25 Thread Serhei Makarov
Changes for v6: - Minor fixes as requested. Changes for v4: - Separate out libdwfl_stacktrace, as requested. Changes for v3: - use const void *stack, not void *, to allow users to pass a const stack sample Changes for v2: - use renamed __libdwfl_set_initial_registers_thread - oops, should

[PATCH v6 10/12] eu-stacktrace [10/12]: use dwflst_tracker_find_pid

2025-04-25 Thread Serhei Makarov
Changes for v6: - Minor fixes as requested. Changes for v4: - Separate out libdwfl_stacktrace, as requested. * * * Initial minimal change to ensure dwflst_tracker_find_pid is tested. For now, we keep the additional dwfltab implementation in stacktrace.c, since it's being used to track statisti

[PATCH v6 08/12] libdwfl_stacktrace [8/12]: Dwfl* caching via Dwflst_Process_Tracker

2025-04-25 Thread Serhei Makarov
Changes for v6: - Minor fixes as requested. Changes for v4: - Separate out libdwfl_stacktrace, as requested. Changes for v3: - Handle dwfl->process == NULL case in __libdwfl_remove_dwfl_from_tracker. * * * The Dwflst_Process_Tracker also includes a dynamicsizehash cache which maps process id

[PATCH v6 06/12] libdwfl_stacktrace [6/12]: Elf* caching via dwflst_process_tracker

2025-04-25 Thread Serhei Makarov
Changes for v6: - Minor fixes as requested. Changes for v5: - Bugfixes in dwflst_tracker_find_elf.c. Changes for v4: - Separate out libdwfl_stacktrace, as requested. - dwfl_module_getdwarf.c now uses the dwflst_tracker_cache_elf() interface instead of editing the elftab directly. Changes f

[PATCH v6 03/12] libebl [3/12]: eu-stacktrace: use new register handling api

2025-04-25 Thread Serhei Makarov
Changes for v4: - Since __libdwfl_set_initial_registers_thread is now private to libdwfl, the modified code in this patch has been disabled. * * * Dummy commit to show how the sample_set_initial_registers callback in eu-stacktrace would use the proper libebl ebl_set_initial_registers_sample fu

[PATCH v6 07/12] eu-stacktrace [7/12]: use Dwflst_Process_Tracker for Elf * caching

2025-04-25 Thread Serhei Makarov
Changes for v4: - Separate out libdwfl_stacktrace, as requested. * * * * src/Makefile.am (AM_CPPFLAGS): Include headers from ../libdwfl_stacktrace. * src/stacktrace.c (tracker): New global variable. (sample_callbacks): Use dwflst_tracker_linux_proc_find_elf for caching. (sysprof_init_dwf

[PATCH v6 04/12] libdwfl_stacktrace [4/12]: intro library, add dwflst_perf_sample_preferred_regs_mask

2025-04-25 Thread Serhei Makarov
Changes for v5: - Separate ELFUTILS_0.193_EXPERIMENTAL namespace, mark library experimental. Changes for v4: - Separate out libdwfl_stacktrace, as requested. Changes for v2: - guard the linux/perf_events.h include properly with an #if defined __linux__ * * * Subsequent patches in the series

[PATCH v6 09/12] libdwfl_stacktrace [9/12]: add dwflst_tracker_find_pid

2025-04-25 Thread Serhei Makarov
Changes for v6: - Minor fixes as requested. Changes for v4: - Separate out libdwfl_stacktrace, as requested. Changes for v2: - Add locking for dwfltab. * * * New function that retrieves the Dwfl for a particular PID, or, if the Dwfl is absent, creates it via a provided callback and adds it t

[PATCH v6 02/12] libdwfl [2/12]: expose setfunc callback for libdwflP+libebl clients

2025-04-25 Thread Serhei Makarov
Changes for v6: - Minor fixes as requested. Changes for v2: - No longer exposing this in public libdwfl.h api. * * * Renaming pid_set_initial_registers to __libdwfl_set_initial_registers_thread and adding to libdwflP.h. This callback was private to one file, but now we need to access it from

Re: [PATCH v5 06/12] libdwfl_stacktrace [6/12]: Elf* caching via dwflst_process_tracker

2025-04-25 Thread Aaron Merey
On Fri, Apr 25, 2025 at 9:56 AM Serhei Makarov wrote: > > > > On Fri, Apr 25, 2025, at 1:57 AM, Aaron Merey wrote: > > Also if you haven't done so already, please run any manual tests under > > valgrind memcheck (and helgrind if you are able to test this with > > multithreading). > Ran eu-stacktra

Re: [PATCH v5 06/12] libdwfl_stacktrace [6/12]: Elf* caching via dwflst_process_tracker

2025-04-25 Thread Serhei Makarov
On Fri, Apr 25, 2025, at 1:57 AM, Aaron Merey wrote: > Also if you haven't done so already, please run any manual tests under > valgrind memcheck (and helgrind if you are able to test this with > multithreading). Ran eu-stacktrace through valgrind; the content of the cache is marked as 'leaked'

Re: [PATCH v5 03/12] libebl [3/12]: eu-stacktrace: use new register handling api

2025-04-25 Thread Serhei Makarov
On Fri, Apr 25, 2025, at 1:54 AM, Aaron Merey wrote: > This commit could probably be merged with 2 or 12 with the > sample_set_initial_registers design decisions explained in the commit > message. But this patch as-is is harmless so if you prefer to keep it > this way that's ok with me. I'm incl

Re: debuginfod-find: Way to obtain package metadata

2025-04-25 Thread Frank Ch. Eigler
Hi - > [...] > $ debuginfod-find -v debuginfo 1afd01f4bd3e689a67206c10c20e69921ba9be93 > /home/fweimer/.cache/debuginfod_client/1afd01f4bd3e689a67206c10c20e69921ba9be93/debuginfo > > Due to the caching, the extra metadata is not shown. I love this kind of feature request, coming to you in the im

debuginfod-find: Way to obtain package metadata

2025-04-25 Thread Florian Weimer
The functionality is almost there: $ debuginfod-find -v debuginfo 1afd01f4bd3e689a67206c10c20e69921ba9be93 Progress 1 / 0 Progress 77622 / 3150088 Progress 257335 / 3150088 Progress 601864 / 3150088 Progress 2398519 / 3150088 Headers: x-debuginfod-size: 3150088 x-debuginfod-archive: /mnt/fedora_k