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

2025-04-23 Thread Serhei Makarov
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 the perf_events sampling code as well. * libd

Re: scraperbot protection - Patchwork and Bunsen behind Anubis

2025-04-23 Thread Frank Ch. Eigler
Hi - > We were wondering if it would be possible / suitable to have https > requests served by one container, > and ssh ones by another? Maybe that's already the case though... SSH stuff is already (un)contained. > [...] > so maybe it would help if we switched to ssh access for our CI user > whe

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

2025-04-23 Thread Serhei Makarov
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 for v3: - Reworked elftab to incorporate dev/ino into the caching key (to allow caching modules from di

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

2025-04-23 Thread Serhei Makarov
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 ids to Dwfl * (or rather, dwflst_tracker_dwfl_in

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

2025-04-23 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 v4 05/12] libdwfl_stacktrace [5/12]: introduce Dwflst_Process_Tracker

2025-04-23 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 v4 07/12] eu-stacktrace [7/12]: use Dwflst_Process_Tracker for Elf * caching

2025-04-23 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 v4 09/12] libdwfl_stacktrace [9/12]: add dwflst_tracker_find_pid

2025-04-23 Thread Serhei Makarov
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 to the table later, when the PID is confirmed v

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

2025-04-23 Thread Serhei Makarov
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 use provided sample_arg->perf_regs_mask in

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

2025-04-23 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 v4 01/12] libebl [1/12]: api for perf register handling, start with x86_64

2025-04-23 Thread Serhei Makarov
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 reworks eu-stacktrace functionality into a li

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

2025-04-23 Thread Serhei Makarov
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 introduce a new library for tracking/caching Elf structs across multiple processes and wrapping

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

2025-04-23 Thread Serhei Makarov
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 statistics. In future follow-ups, it will be good to

Re: scraperbot protection - Patchwork and Bunsen behind Anubis

2025-04-23 Thread Christophe Lyon
Hi! Thanks for all the hard work maintaining all this fundamental infrastructure. On Mon, 21 Apr 2025 at 18:00, Mark Wielaard wrote: > > Hi hackers, > > TLDR; When using https://patchwork.sourceware.org or Bunsen > https://builder.sourceware.org/testruns/ you might now have to enable > javascrip