[GIT PULL] RTLA: Updates for 7.0

From: Steven Rostedt

Date: Thu Feb 12 2026 - 09:46:49 EST



Linus,

Real-Time Linux Analysis tooling patches for v7.0

- 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.

- De-duplicate 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.


Please pull the latest trace-rtla-v7.0 tree, which can be found at:


git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
trace-rtla-v7.0

Tag SHA1: ff72806864d3e8be29ce145576bed85a013be3d8
Head SHA1: 6ea8a206108fe8b5940c2797afc54ae9f5a7bbdd


Costa Shulyupin (12):
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
rtla: Fix parse_cpu_set() bug introduced by strtoi()

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 | 100 +++++++++------
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, 507 insertions(+), 356 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
---------------------------