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


Reply via email to