[PATCH v5 7/8] rtla: Unconditionally clean any pre-existing filters for user-provided events

From: Valentin Schneider

Date: Wed Sep 02 2026 - 08:49:03 EST


A later commit will apply a filter to events recorded to the trace
output. To prevent any user confusion, remove pre-existing filters when
enabling an event provided via the '-e' command line argument.

Suggested-by: Tomas Glozar <tglozar@xxxxxxxxxx>
Signed-off-by: Valentin Schneider <vschneid@xxxxxxxxxx>
---
Documentation/tools/rtla/common_options.txt | 9 ++++++++-
tools/tracing/rtla/src/trace.c | 4 ++++
2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/Documentation/tools/rtla/common_options.txt b/Documentation/tools/rtla/common_options.txt
index 38da1cf443a48..6bf0f86393333 100644
--- a/Documentation/tools/rtla/common_options.txt
+++ b/Documentation/tools/rtla/common_options.txt
@@ -26,12 +26,19 @@

**--filter** *<filter>*

- Filter the previous **-e** *sys:event* event with *<filter>*. For further information about event filtering see https://www.kernel.org/doc/html/latest/trace/events.html#event-filtering.
+ Filter the previous **-e** *sys:event* event with *<filter>*.
+
+ If the same event is specified more than once but with different filters, the last specified filter will be the only one applied.
+
+ For further information about event filtering see https://www.kernel.org/doc/html/latest/trace/events.html#event-filtering.

This option cannot be unset.

**--trigger** *<trigger>*
Enable a trace event trigger to the previous **-e** *sys:event*.
+
+ If the same event is specified more than once but with different triggers, the last specified trigger will be the only one applied.
+
If the *hist:* trigger is activated, the output histogram will be automatically saved to a file named *system_event_hist.txt*.
For example, the command:

diff --git a/tools/tracing/rtla/src/trace.c b/tools/tracing/rtla/src/trace.c
index 17d148f7d5d6e..06204d339f967 100644
--- a/tools/tracing/rtla/src/trace.c
+++ b/tools/tracing/rtla/src/trace.c
@@ -487,6 +487,10 @@ static int trace_event_enable_filter(struct trace_instance *instance,
char filter[MAX_PATH];
int retval;

+ /* Unconditionally clean any pre-existing filters */
+ tracefs_event_file_write(instance->inst, tevent->system,
+ tevent->event, "filter", "0");
+
if (!tevent->filter)
return 0;

--
2.55.0