Steven, please pull the following changes for RTLA (more info in tag description).
Thanks, Tomas The following changes since commit 9ace4753a5202b02191d54e9fdf7f9e3d02b85eb: Linux 6.19-rc4 (2026-01-04 14:41:55 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/tglozar/linux.git tags/rtla-v6.20 for you to fetch changes up to fb8b8183208d8efe824e8d2c73fb1ab5ad1191fd: rtla: Fix parse_cpu_set() return value documentation (2026-01-07 15:57:56 +0100) ---------------------------------------------------------------- RTLA patches for v6.20 - Remove unused function declarations Some functions were removed in recent code consolidation 6.18, but their prototypes were not removed from headers. Remove them. - Set stop threshold after enabling instances Prefer recording samples without stopping on them on the start of tracing to stopping on samples that are never recorded. This fixes flakiness of some RTLA tests and unifies behavior of sample collection between tracefs mode and BPF mode. - Consolidate usage help message implementation RTLA tools (osnoise-top, osnoise-hist, timerlat-top, timerlat-hist) each implement usage help individually. Move common logic between them into a new function to reduce code duplication. - Add BPF actions feature Add option --bpf-action to attach a BPF program (passed as filename of its ELF representation) to be executed via BPF tail call at latency threshold. - Consolidate command line option parsing Each RTLA tool implements the parsing of command line options individually. Now that we have a common structure for parameters, unify the parsing of those options common among all four tools into one function. - Deduplicage cgroup common code Two functions in utils.c, setting cgroup for comm and setting cgroup for pid, duplicate code for constructing the cgroup path. Extract it to a new helper function. - String and error handling fixes and cleanups There were several instances of unsafe string and error handling that could cause invalid memory access; fix them. Also, remove a few unused headers, update .gitignore, and deduplicate code. The tag was tested (make && make check) as well as pre-tested on top of next-20260107. There are no known conflicts. Signed-off-by: Tomas Glozar <[email protected]> ---------------------------------------------------------------- Costa Shulyupin (11): tools/rtla: Remove unused function declarations tools/rtla: Add common_usage() tools/rtla: Add common_parse_options() tools/rtla: Consolidate -c/--cpus option parsing tools/rtla: Consolidate -C/--cgroup option parsing tools/rtla: Consolidate -D/--debug option parsing tools/rtla: Consolidate -d/--duration option parsing tools/rtla: Consolidate -e/--event option parsing tools/rtla: Consolidate -P/--priority option parsing tools/rtla: Consolidate -H/--house-keeping option parsing tools/rtla: Deduplicate cgroup path opening code Crystal Wood (1): rtla: Set stop threshold after all instances are enabled Tomas Glozar (7): rtla/timerlat: Support tail call from BPF program rtla/timerlat: Add --bpf-action option rtla/timerlat: Add example for BPF action program rtla/tests: Test BPF action program rtla/tests: Run Test::Harness in verbose mode Documentation/rtla: Rename sample/ to example/ Documentation/rtla: Document --bpf-action option Wander Lairson Costa (10): rtla: Introduce for_each_action() helper rtla: Replace atoi() with a robust strtoi() rtla: Use standard exit codes for result enum rtla: Remove redundant memset after calloc rtla: Remove unused headers rtla: Fix NULL pointer dereference in actions_parse rtla: Add generated output files to gitignore rtla: Make stop_tracing variable volatile rtla: Ensure null termination after read operations in utils.c rtla: Fix parse_cpu_set() return value documentation .../tools/rtla/common_timerlat_options.txt | 20 ++- tools/tracing/rtla/.gitignore | 4 + tools/tracing/rtla/Makefile | 19 ++- tools/tracing/rtla/example/timerlat_bpf_action.c | 16 +++ .../rtla/{sample => example}/timerlat_load.py | 0 tools/tracing/rtla/src/actions.c | 17 +-- tools/tracing/rtla/src/actions.h | 5 + tools/tracing/rtla/src/common.c | 140 ++++++++++++++++++++- tools/tracing/rtla/src/common.h | 10 +- tools/tracing/rtla/src/osnoise.c | 17 +-- tools/tracing/rtla/src/osnoise.h | 8 -- tools/tracing/rtla/src/osnoise_hist.c | 76 ++--------- tools/tracing/rtla/src/osnoise_top.c | 90 +++---------- tools/tracing/rtla/src/timerlat.bpf.c | 25 +++- tools/tracing/rtla/src/timerlat.c | 29 ++--- tools/tracing/rtla/src/timerlat.h | 2 +- tools/tracing/rtla/src/timerlat_bpf.c | 66 ++++++++++ tools/tracing/rtla/src/timerlat_bpf.h | 7 +- tools/tracing/rtla/src/timerlat_hist.c | 80 +++--------- tools/tracing/rtla/src/timerlat_top.c | 80 +++--------- tools/tracing/rtla/src/trace.c | 1 - tools/tracing/rtla/src/utils.c | 110 ++++++++++------ tools/tracing/rtla/src/utils.h | 10 +- tools/tracing/rtla/tests/bpf/bpf_action_map.c | 25 ++++ tools/tracing/rtla/tests/engine.sh | 1 - tools/tracing/rtla/tests/timerlat.t | 15 +++ 26 files changed, 513 insertions(+), 360 deletions(-) create mode 100644 tools/tracing/rtla/example/timerlat_bpf_action.c rename tools/tracing/rtla/{sample => example}/timerlat_load.py (100%) create mode 100644 tools/tracing/rtla/tests/bpf/bpf_action_map.c
