* [PATCH 1/2] tools/rtla: Fix --on-threshold always triggering
@ 2025-10-06 14:26 Tomas Glozar
2025-10-06 14:26 ` [PATCH 2/2] rtla/tests: Extend action tests to 5s Tomas Glozar
2025-10-06 15:48 ` [PATCH 1/2] tools/rtla: Fix --on-threshold always triggering Crystal Wood
0 siblings, 2 replies; 4+ messages in thread
From: Tomas Glozar @ 2025-10-06 14:26 UTC (permalink / raw)
To: Steven Rostedt
Cc: LKML, Linux Trace Kernel, John Kacur, Luis Goncalves,
Costa Shulyupin, Crystal Wood, Wander Lairson Costa, Tomas Glozar
Commit 8d933d5c89e8 ("rtla/timerlat: Add continue action") moved the
code performing on-threshold actions (enabled through --on-threshold
option) to inside the RTLA main loop.
The condition in the loop does not check whether the threshold was
actually exceeded or if stop tracing was requested by the user through
SIGINT or duration. This leads to a bug where on-threshold actions are
always performed, even when the threshold was not hit.
(BPF mode is not affected, since it uses a different condition in the
while loop.)
Add a condition that checks for !stop_tracing before executing the
actions. Also, fix incorrect brackets in hist_main_loop to match the
semantics of top_main_loop.
Fixes: 8d933d5c89e8 ("rtla/timerlat: Add continue action")
Fixes: 2f3172f9dd58 ("tools/rtla: Consolidate code between osnoise/timerlat and hist/top")
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
---
tools/tracing/rtla/src/common.c | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/tools/tracing/rtla/src/common.c b/tools/tracing/rtla/src/common.c
index 2e6e3dac1897..b197037fc58b 100644
--- a/tools/tracing/rtla/src/common.c
+++ b/tools/tracing/rtla/src/common.c
@@ -268,6 +268,10 @@ int top_main_loop(struct osnoise_tool *tool)
tool->ops->print_stats(tool);
if (osnoise_trace_is_off(tool, record)) {
+ if (stop_tracing)
+ /* stop tracing requested, do not perform actions */
+ return 0;
+
actions_perform(¶ms->threshold_actions);
if (!params->threshold_actions.continue_flag)
@@ -315,20 +319,22 @@ int hist_main_loop(struct osnoise_tool *tool)
}
if (osnoise_trace_is_off(tool, tool->record)) {
+ if (stop_tracing)
+ /* stop tracing requested, do not perform actions */
+ break;
+
actions_perform(¶ms->threshold_actions);
- if (!params->threshold_actions.continue_flag) {
+ if (!params->threshold_actions.continue_flag)
/* continue flag not set, break */
break;
- /* continue action reached, re-enable tracing */
- if (tool->record)
- trace_instance_start(&tool->record->trace);
- if (tool->aa)
- trace_instance_start(&tool->aa->trace);
- trace_instance_start(&tool->trace);
- }
- break;
+ /* continue action reached, re-enable tracing */
+ if (tool->record)
+ trace_instance_start(&tool->record->trace);
+ if (tool->aa)
+ trace_instance_start(&tool->aa->trace);
+ trace_instance_start(&tool->trace);
}
/* is there still any user-threads ? */
--
2.51.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] rtla/tests: Extend action tests to 5s
2025-10-06 14:26 [PATCH 1/2] tools/rtla: Fix --on-threshold always triggering Tomas Glozar
@ 2025-10-06 14:26 ` Tomas Glozar
2025-10-06 15:54 ` Crystal Wood
2025-10-06 15:48 ` [PATCH 1/2] tools/rtla: Fix --on-threshold always triggering Crystal Wood
1 sibling, 1 reply; 4+ messages in thread
From: Tomas Glozar @ 2025-10-06 14:26 UTC (permalink / raw)
To: Steven Rostedt
Cc: LKML, Linux Trace Kernel, John Kacur, Luis Goncalves,
Costa Shulyupin, Crystal Wood, Wander Lairson Costa, Tomas Glozar
In non-BPF mode, it takes up to 1 second for RTLA to notice that tracing
has been stopped. That means that action tests cannot have a 1 second
duration, as the SIGALRM will be racing with the threshold overflow.
Previously, non-BPF mode actions were buggy and always executed
the action, even when stopping on duration or SIGINT, preventing
this issue from manifesting. Now that this has been fixed, the tests
have become flaky, and this has to be adjusted.
Fixes: 4e26f84abfb ("rtla/tests: Add tests for actions")
Fixes: 05b7e10687c ("tools/rtla: Add remaining support for osnoise actions")
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
---
tools/tracing/rtla/tests/osnoise.t | 4 ++--
tools/tracing/rtla/tests/timerlat.t | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/tracing/rtla/tests/osnoise.t b/tools/tracing/rtla/tests/osnoise.t
index e3c89d45a6bb..08196443fef1 100644
--- a/tools/tracing/rtla/tests/osnoise.t
+++ b/tools/tracing/rtla/tests/osnoise.t
@@ -39,9 +39,9 @@ check "hist stop at failed action" \
check "top stop at failed action" \
"timerlat top -T 2 --on-threshold shell,command='echo -n abc; false' --on-threshold shell,command='echo -n defgh'" 2 "^abc" "defgh"
check "hist with continue" \
- "osnoise hist -S 2 -d 1s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
+ "osnoise hist -S 2 -d 5s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
check "top with continue" \
- "osnoise top -q -S 2 -d 1s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
+ "osnoise top -q -S 2 -d 5s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
check "hist with trace output at end" \
"osnoise hist -d 1s --on-end trace" 0 "^ Saving trace to osnoise_trace.txt$"
check "top with trace output at end" \
diff --git a/tools/tracing/rtla/tests/timerlat.t b/tools/tracing/rtla/tests/timerlat.t
index b5d1e7260a9b..b550a6ae2445 100644
--- a/tools/tracing/rtla/tests/timerlat.t
+++ b/tools/tracing/rtla/tests/timerlat.t
@@ -60,9 +60,9 @@ check "hist stop at failed action" \
check "top stop at failed action" \
"timerlat top -T 2 --on-threshold shell,command='echo -n 1; false' --on-threshold shell,command='echo -n 2'" 2 "^1ALL"
check "hist with continue" \
- "timerlat hist -T 2 -d 1s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
+ "timerlat hist -T 2 -d 5s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
check "top with continue" \
- "timerlat top -q -T 2 -d 1s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
+ "timerlat top -q -T 2 -d 5s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
check "hist with trace output at end" \
"timerlat hist -d 1s --on-end trace" 0 "^ Saving trace to timerlat_trace.txt$"
check "top with trace output at end" \
--
2.51.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] tools/rtla: Fix --on-threshold always triggering
2025-10-06 14:26 [PATCH 1/2] tools/rtla: Fix --on-threshold always triggering Tomas Glozar
2025-10-06 14:26 ` [PATCH 2/2] rtla/tests: Extend action tests to 5s Tomas Glozar
@ 2025-10-06 15:48 ` Crystal Wood
1 sibling, 0 replies; 4+ messages in thread
From: Crystal Wood @ 2025-10-06 15:48 UTC (permalink / raw)
To: Tomas Glozar, Steven Rostedt
Cc: LKML, Linux Trace Kernel, John Kacur, Luis Goncalves,
Costa Shulyupin, Wander Lairson Costa
On Mon, 2025-10-06 at 16:26 +0200, Tomas Glozar wrote:
> Also, fix incorrect brackets in hist_main_loop to match the
> semantics of top_main_loop.
Oops, thanks for fixing this!
Reviewed-by: Crystal Wood <crwood@redhat.com>
-Crystal
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] rtla/tests: Extend action tests to 5s
2025-10-06 14:26 ` [PATCH 2/2] rtla/tests: Extend action tests to 5s Tomas Glozar
@ 2025-10-06 15:54 ` Crystal Wood
0 siblings, 0 replies; 4+ messages in thread
From: Crystal Wood @ 2025-10-06 15:54 UTC (permalink / raw)
To: Tomas Glozar, Steven Rostedt
Cc: LKML, Linux Trace Kernel, John Kacur, Luis Goncalves,
Costa Shulyupin, Wander Lairson Costa
On Mon, 2025-10-06 at 16:26 +0200, Tomas Glozar wrote:
> In non-BPF mode, it takes up to 1 second for RTLA to notice that tracing
> has been stopped. That means that action tests cannot have a 1 second
> duration, as the SIGALRM will be racing with the threshold overflow.
>
> Previously, non-BPF mode actions were buggy and always executed
> the action, even when stopping on duration or SIGINT, preventing
> this issue from manifesting. Now that this has been fixed, the tests
> have become flaky, and this has to be adjusted.
>
> Fixes: 4e26f84abfb ("rtla/tests: Add tests for actions")
> Fixes: 05b7e10687c ("tools/rtla: Add remaining support for osnoise actions")
> Signed-off-by: Tomas Glozar <tglozar@redhat.com>
> ---
> tools/tracing/rtla/tests/osnoise.t | 4 ++--
> tools/tracing/rtla/tests/timerlat.t | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tools/tracing/rtla/tests/osnoise.t b/tools/tracing/rtla/tests/osnoise.t
> index e3c89d45a6bb..08196443fef1 100644
> --- a/tools/tracing/rtla/tests/osnoise.t
> +++ b/tools/tracing/rtla/tests/osnoise.t
> @@ -39,9 +39,9 @@ check "hist stop at failed action" \
> check "top stop at failed action" \
> "timerlat top -T 2 --on-threshold shell,command='echo -n abc; false' --on-threshold shell,command='echo -n defgh'" 2 "^abc" "defgh"
> check "hist with continue" \
> - "osnoise hist -S 2 -d 1s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
> + "osnoise hist -S 2 -d 5s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
> check "top with continue" \
> - "osnoise top -q -S 2 -d 1s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
> + "osnoise top -q -S 2 -d 5s --on-threshold shell,command='echo TestOutput' --on-threshold continue" 0 "^TestOutput$"
Not related to this patch other than noticing it via quoted context, but
I spent about a minute trying to figure out why "top stop at failed
action" uses -T instead of -S here, before noticing that it's also
invoking timerlat. :-P
-Crystal
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-10-06 15:54 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-06 14:26 [PATCH 1/2] tools/rtla: Fix --on-threshold always triggering Tomas Glozar
2025-10-06 14:26 ` [PATCH 2/2] rtla/tests: Extend action tests to 5s Tomas Glozar
2025-10-06 15:54 ` Crystal Wood
2025-10-06 15:48 ` [PATCH 1/2] tools/rtla: Fix --on-threshold always triggering Crystal Wood
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).