From: Tomas Glozar <tglozar@redhat.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org,
John Kacur <jkacur@redhat.com>,
Luis Goncalves <lgoncalv@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Chang Yin <cyin@redhat.com>,
Costa Shulyupin <costa.shul@redhat.com>,
Tomas Glozar <tglozar@redhat.com>
Subject: [PATCH 0/8] rtla/timerlat: Support actions on threshold and on end
Date: Wed, 11 Jun 2025 15:56:36 +0200 [thread overview]
Message-ID: <20250611135644.219127-1-tglozar@redhat.com> (raw)
This series adds a feature that allows to user to specify certain
kinds of "actions" to be executed at one of two places in the rtla
measurement: when tracing is stopped on latency threshold, and at the
end of tracing.
Two new options are added: -A/--on-threshold, and -N/--on-end, taking
the action as an argument. For example:
$ rtla timerlat hist -T 10 -A shell,command="echo Threshold" \
-N shell,command="echo Tracing stopped"
will print "Threshold" if a thread latency higher than 10 microseconds
is reached, and "Tracing stopped" always at the end.
The list of possible actions is extensible and is covered in
the commit messages. Later, a documentation patch series will be sent
with clear explanation of every action and its syntax.
Notably, a special action "continue" resumes tracing. For example:
$ rtla timerlat hist -T 100 -A shell,command="echo Threshold" \
-A continue -d 10s
will print "Threshold" as many times as tracing is stopped after
thread latency reaches 100us.
The feature was inspired by a case where collecting perf data on rtla
latency overflow was required, which can be done by sending a signal
to the perf process.
Example of this with Intel PT aux buffer:
$ perf record --cpu 0 -e intel_pt// -S -- rtla timerlat top -q -T 100 \
-c 0 -A signal,pid=parent,num=12 -A continue
In general, the feature is aiming to allow integration with external
tooling. To implement even more flexibility, passing context to the
shell through environmental variables, or even an entire scripting
language with access to the rtla internals can be implemented if
needed.
Tomas Glozar (8):
rtla/timerlat: Introduce enum timerlat_tracing_mode
rtla/timerlat: Add action on threshold feature
rtla/timerlat_bpf: Allow resuming tracing
rtla/timerlat: Add continue action
rtla/timerlat: Add action on end feature
rtla/tests: Check rtla output with grep
rtla/tests: Add tests for actions
rtla/tests: Limit duration to maximum of 10s
tools/tracing/rtla/src/Build | 1 +
tools/tracing/rtla/src/actions.c | 260 +++++++++++++++++++++++++
tools/tracing/rtla/src/actions.h | 52 +++++
tools/tracing/rtla/src/timerlat.bpf.c | 13 +-
tools/tracing/rtla/src/timerlat.c | 24 ++-
tools/tracing/rtla/src/timerlat.h | 24 ++-
tools/tracing/rtla/src/timerlat_bpf.c | 13 ++
tools/tracing/rtla/src/timerlat_bpf.h | 3 +
tools/tracing/rtla/src/timerlat_hist.c | 145 ++++++++++----
tools/tracing/rtla/src/timerlat_top.c | 167 ++++++++++------
tools/tracing/rtla/tests/engine.sh | 21 +-
tools/tracing/rtla/tests/hwnoise.t | 8 +-
tools/tracing/rtla/tests/osnoise.t | 4 +-
tools/tracing/rtla/tests/timerlat.t | 36 +++-
14 files changed, 652 insertions(+), 119 deletions(-)
create mode 100644 tools/tracing/rtla/src/actions.c
create mode 100644 tools/tracing/rtla/src/actions.h
--
2.49.0
next reply other threads:[~2025-06-11 13:57 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-11 13:56 Tomas Glozar [this message]
2025-06-11 13:56 ` [PATCH 1/8] rtla/timerlat: Introduce enum timerlat_tracing_mode Tomas Glozar
2025-06-11 13:56 ` [PATCH 2/8] rtla/timerlat: Add action on threshold feature Tomas Glozar
2025-08-03 11:08 ` Costa Shulyupin
2025-08-04 11:04 ` Tomas Glozar
2025-06-11 13:56 ` [PATCH 3/8] rtla/timerlat_bpf: Allow resuming tracing Tomas Glozar
2025-06-11 13:56 ` [PATCH 4/8] rtla/timerlat: Add continue action Tomas Glozar
2025-06-11 13:56 ` [PATCH 5/8] rtla/timerlat: Add action on end feature Tomas Glozar
2025-06-11 13:56 ` [PATCH 6/8] rtla/tests: Check rtla output with grep Tomas Glozar
2025-06-11 13:56 ` [PATCH 7/8] rtla/tests: Add tests for actions Tomas Glozar
2025-06-11 13:56 ` [PATCH 8/8] rtla/tests: Limit duration to maximum of 10s Tomas Glozar
2025-06-11 14:46 ` [PATCH 0/8] rtla/timerlat: Support actions on threshold and on end Arnaldo Carvalho de Melo
2025-06-23 14:15 ` Tomas Glozar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250611135644.219127-1-tglozar@redhat.com \
--to=tglozar@redhat.com \
--cc=acme@kernel.org \
--cc=costa.shul@redhat.com \
--cc=cyin@redhat.com \
--cc=jkacur@redhat.com \
--cc=lgoncalv@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®