* [GIT PULL] RTLA changes for 7.3
@ 2026-08-05 15:10 Tomas Glozar
2026-08-11 1:04 ` Steven Rostedt
0 siblings, 1 reply; 3+ messages in thread
From: Tomas Glozar @ 2026-08-05 15:10 UTC (permalink / raw)
To: Steven Rostedt; +Cc: LKML, linux-trace-kernel, Tomas Glozar
Steven,
The following changes since commit 075b74841bd0065a3bda3440873c747938e69b68:
Linux 7.2-rc6 (2026-08-02 16:24:24 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/tglozar/linux.git tags/rtla-v7.3
for you to fetch changes up to 0ad45018ace734e3a21c8b15280df65b429135d1:
rtla/cli: Unify and improve handling of invalid option arguments (2026-08-05 10:14:40 +0200)
----------------------------------------------------------------
RTLA patches for 7.3
- Extend support for unsetting CLI options
libsubcmd auto-generates "--no-<option>" to unset options, provided
the option callback supports it. Implement this for RTLA CLI beyond
boolean options, and document the few exceptions that are left out.
- Test all tracer options in runtime tests
Verify that RTLA sets osnoise/timerlat options correctly by reading them
from tracefs during runtime tests.
- Improve range validation for option arguments
Make CLI range validation consistent with the kernel limits and unify
implementation and error messages between options.
- Improve invalid option argument parsing
Consistently reject invalid values for numeric option arguments with
a unified error message for all options.
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
----------------------------------------------------------------
Tomas Glozar (7):
rtla: Allow unsetting non-list custom-callback CLI options
rtla: Add unit tests for unset in opt callbacks
rtla: Add unit tests for CLI with unset
Documentation/rtla: Document unsetting options
rtla/tests: Test all tracer options in runtime tests
rtla/cli: Unify and improve range validation logic
rtla/cli: Unify and improve handling of invalid option arguments
Documentation/tools/rtla/common_appendix.txt | 17 +
Documentation/tools/rtla/common_options.txt | 13 +-
.../tools/rtla/common_osnoise_options.txt | 4 +
.../tools/rtla/common_timerlat_options.txt | 4 +
tools/tracing/rtla/src/cli.c | 42 +-
tools/tracing/rtla/src/cli_p.h | 497 ++++++++++++-------
tools/tracing/rtla/tests/engine.sh | 41 +-
tools/tracing/rtla/tests/hwnoise.t | 3 +
tools/tracing/rtla/tests/osnoise.t | 39 +-
.../rtla/tests/scripts/check-osnoise-option.sh | 16 +
.../rtla/tests/scripts/check-tracefs-value.sh | 11 +
tools/tracing/rtla/tests/timerlat.t | 40 +-
tools/tracing/rtla/tests/unit/cli_opt_callback.c | 534 ++++++++++++++-------
tools/tracing/rtla/tests/unit/osnoise_hist_cli.c | 18 +
tools/tracing/rtla/tests/unit/osnoise_top_cli.c | 18 +
tools/tracing/rtla/tests/unit/timerlat_hist_cli.c | 18 +
tools/tracing/rtla/tests/unit/timerlat_top_cli.c | 18 +
17 files changed, 949 insertions(+), 384 deletions(-)
create mode 100755 tools/tracing/rtla/tests/scripts/check-osnoise-option.sh
create mode 100755 tools/tracing/rtla/tests/scripts/check-tracefs-value.sh
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [GIT PULL] RTLA changes for 7.3
2026-08-05 15:10 [GIT PULL] RTLA changes for 7.3 Tomas Glozar
@ 2026-08-11 1:04 ` Steven Rostedt
2026-08-11 7:22 ` Tomas Glozar
0 siblings, 1 reply; 3+ messages in thread
From: Steven Rostedt @ 2026-08-11 1:04 UTC (permalink / raw)
To: Tomas Glozar; +Cc: LKML, linux-trace-kernel
On Wed, 5 Aug 2026 17:10:55 +0200
Tomas Glozar <tglozar@redhat.com> wrote:
> Steven,
>
> The following changes since commit 075b74841bd0065a3bda3440873c747938e69b68:
>
> Linux 7.2-rc6 (2026-08-02 16:24:24 -0700)
>
> are available in the Git repository at:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/tglozar/linux.git tags/rtla-v7.3
>
> for you to fetch changes up to 0ad45018ace734e3a21c8b15280df65b429135d1:
>
> rtla/cli: Unify and improve handling of invalid option arguments (2026-08-05 10:14:40 +0200)
I just tested this on my VM and have the following results from "make check":
Auto-detecting system features:
... libtraceevent: [ on ]
... libtracefs: [ on ]
... libcpupower: [ on ]
... libcheck: [ OFF ]
... libbpf: [ OFF ]
... clang-bpf-co-re: [ on ]
... bpftool-skeletons: [ on ]
libcheck is missing, building without unit tests support.
Please install check-devel/check
libbpf is missing, building without BPF skeleton support.
Please install libbpf-dev/libbpf-devel
[..]
tests/timerlat.t ..
1..75
[..]
not ok 20 - top verify -c/--cpus
# Output match failed: "^Affinity of threads: 0$"
# Affinity of threads:
# Timer Latency
# 0 00:00:04 | IRQ Timer Latency (us) | Thread Timer Latency (us) | Ret user Timer Latency (us)
# CPU COUNT | cur min avg max | cur min avg max | cur min avg max
# 0 #2 | 72 70 71 72 | 128 128 128 129 | 154 154 154 154
# ---------------|----------------------------------------|----------------------------------------|---------------------------------------
# ALL #2 e0 | 70 71 72 | 128 128 129 | 154 154 154
# timerlat hit stop tracing
# ## CPU 0 hit stop tracing, analyzing it ##
# IRQ handler delay: (exit from idle) 58.28 us (45.18 %)
# IRQ latency: 72.60 us
# Timerlat IRQ duration: 32.63 us (25.29 %)
# Blocking thread: 22.43 us (17.39 %)
# swapper/0:0 22.43 us
# ------------------------------------------------------------------------
# Thread latency: 129.00 us (100%)
#
# Max timerlat IRQ latency from idle: 72.60 us in cpu 0
#
# exit code 2
not ok 21 - hist verify -c/--cpus
# Output match failed: "^Affinity of threads: 0$"
# Affinity of threads:
# # RTLA timerlat histogram
# # Time unit is microseconds (us)
# # Duration: 0 00:00:03
# Index IRQ-000 Thr-000 Usr-000
# 80 1 0 0
# 81 1 0 0
# 139 0 2 0
# 165 0 0 1
# over: 0 0 0
# count: 2 2 1
# min: 80 139 165
# avg: 80 139 165
# max: 81 139 165
# ALL: IRQ Thr Usr
# count: 2 2 1
# min: 80 139 165
# avg: 80 139 165
# max: 81 139 165
# timerlat hit stop tracing
# ## CPU 0 hit stop tracing, analyzing it ##
# IRQ handler delay: (exit from idle) 67.05 us (48.08 %)
# IRQ latency: 81.97 us
# Timerlat IRQ duration: 33.38 us (23.94 %)
# Blocking thread: 22.95 us (16.46 %)
# swapper/0:0 22.95 us
# ------------------------------------------------------------------------
# Thread latency: 139.45 us (100%)
#
# Max timerlat IRQ latency from idle: 81.97 us in cpu 0
#
# exit code 2
ok 22 - top verify -H/--house-keeping
ok 23 - hist verify -H/--house-keeping
ok 24 - top verify -k/--kernel-threads
ok 25 - hist verify -k/--kernel-threads
not ok 26 - top verify -u/--user-threads
# Output match failed: "0 kernel threads, 1 user threads"
# 0 kernel threads, 0 user threads
# Timer Latency
# 0 00:00:04 | IRQ Timer Latency (us) | Thread Timer Latency (us) | Ret user Timer Latency (us)
# CPU COUNT | cur min avg max | cur min avg max | cur min avg max
# 0 #2 | 90 78 84 90 | 147 136 141 147 | 163 163 163 163
# ---------------|----------------------------------------|----------------------------------------|---------------------------------------
# ALL #2 e0 | 78 84 90 | 136 141 147 | 163 163 163
# timerlat hit stop tracing
# ## CPU 0 hit stop tracing, analyzing it ##
# IRQ handler delay: (exit from idle) 75.58 us (51.26 %)
# IRQ latency: 90.24 us
# Timerlat IRQ duration: 33.32 us (22.60 %)
# Blocking thread: 23.06 us (15.64 %)
# swapper/0:0 23.06 us
# ------------------------------------------------------------------------
# Thread latency: 147.46 us (100%)
#
# Max timerlat IRQ latency from idle: 90.24 us in cpu 0
#
# exit code 2
not ok 27 - hist verify -u/--user-threads
# Output match failed: "0 kernel threads, 1 user threads"
# 0 kernel threads, 0 user threads
# # RTLA timerlat histogram
# # Time unit is microseconds (us)
# # Duration: 0 00:00:05
# Index IRQ-000 Thr-000 Usr-000
# 75 1 0 0
# 83 1 0 0
# 133 0 1 0
# 140 0 1 0
# 160 0 0 1
# over: 0 0 0
# count: 2 2 1
# min: 75 133 160
# avg: 79 136 160
# max: 83 140 160
# ALL: IRQ Thr Usr
# count: 2 2 1
# min: 75 133 160
# avg: 79 136 160
# max: 83 140 160
# timerlat hit stop tracing
# ## CPU 0 hit stop tracing, analyzing it ##
# IRQ handler delay: (exit from idle) 68.78 us (48.91 %)
# IRQ latency: 83.35 us
# Timerlat IRQ duration: 33.13 us (23.56 %)
# Blocking thread: 22.89 us (16.28 %)
# swapper/0:0 22.89 us
# ------------------------------------------------------------------------
# Thread latency: 140.62 us (100%)
#
# Max timerlat IRQ latency from idle: 83.35 us in cpu 0
#
# exit code 2
[..]
-- Steve
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [GIT PULL] RTLA changes for 7.3
2026-08-11 1:04 ` Steven Rostedt
@ 2026-08-11 7:22 ` Tomas Glozar
0 siblings, 0 replies; 3+ messages in thread
From: Tomas Glozar @ 2026-08-11 7:22 UTC (permalink / raw)
To: Steven Rostedt; +Cc: LKML, linux-trace-kernel
út 11. 8. 2026 v 3:04 odesílatel Steven Rostedt <rostedt@goodmis.org> napsal:
>
> I just tested this on my VM and have the following results from "make check":
>
> [...]
> not ok 20 - top verify -c/--cpus
> # Output match failed: "^Affinity of threads: 0$"
> # Affinity of threads:
> [...]
> not ok 21 - hist verify -c/--cpus
> # Output match failed: "^Affinity of threads: 0$"
> # Affinity of threads:
> [...]
> not ok 26 - top verify -u/--user-threads
> # Output match failed: "0 kernel threads, 1 user threads"
> # 0 kernel threads, 0 user threads
> [...]
> not ok 27 - hist verify -u/--user-threads
> # Output match failed: "0 kernel threads, 1 user threads"
> # 0 kernel threads, 0 user threads
> [..]
>
> -- Steve
>
tools/tracing/rtla/tests/scripts/lib/get_workload_pids.sh is for some
reason not finding the user threads (as the tests for -H and -k
succeeded) on your system. The threads themselves had to be running,
as timerlat is reporting samples from them. The script and the related
tests cases were added in 7.2 already, this pull request does not
touch them so it's most likely a pre-existing issue.
Either way, I will look into that, thank you for testing. It might be
environment-dependent, as the test relies on the test script (executed
as an --on-threshold action) being a direct child of the main rtla
process - which only holds when the system() shell executes the script
directly, not as a subprocess.
Tomas
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-08-11 7:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-05 15:10 [GIT PULL] RTLA changes for 7.3 Tomas Glozar
2026-08-11 1:04 ` Steven Rostedt
2026-08-11 7:22 ` Tomas Glozar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.