[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260123152534.1036533-4-tglozar@redhat.com>
Date: Fri, 23 Jan 2026 16:25:34 +0100
From: Tomas Glozar <tglozar@...hat.com>
To: Steven Rostedt <rostedt@...dmis.org>,
Masami Hiramatsu <mhiramat@...nel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Crystal Wood <crwood@...hat.com>,
John Kacur <jkacur@...hat.com>,
Luis Goncalves <lgoncalv@...hat.com>,
LKML <linux-kernel@...r.kernel.org>,
Linux Trace Kernel <linux-trace-kernel@...r.kernel.org>,
Tomas Glozar <tglozar@...hat.com>
Subject: [RFC PATCH 3/3] rtla/timerlat: Attach BPF program before tracers
If osnoise:timerlat_sample has instance count fields, attach the BPF program
before starting trace instances in BPF/mixed mode.
This ensures that what is seen by BPF sample collection is exactly what
is seen by the last enabled tracefs instance.
Signed-off-by: Tomas Glozar <tglozar@...hat.com>
---
tools/tracing/rtla/src/timerlat.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/tools/tracing/rtla/src/timerlat.c b/tools/tracing/rtla/src/timerlat.c
index 069f916100e7..da2e2d003ec9 100644
--- a/tools/tracing/rtla/src/timerlat.c
+++ b/tools/tracing/rtla/src/timerlat.c
@@ -170,6 +170,21 @@ int timerlat_enable(struct osnoise_tool *tool)
return -1;
}
+ if (params->mode != TRACING_MODE_TRACEFS && params->has_instance_count_fields) {
+ /*
+ * If the timerlat tracer has instance count fields, it is safe
+ * to attach the BPF program before starting the trace instances.
+ *
+ * The BPF program will ignore any samples that arrive before
+ * the trace instances are started.
+ */
+ retval = timerlat_bpf_attach();
+ if (retval) {
+ err_msg("Error attaching BPF program\n");
+ return retval;
+ }
+ }
+
/*
* Start the tracers here, after having set all instances.
*
@@ -183,7 +198,15 @@ int timerlat_enable(struct osnoise_tool *tool)
trace_instance_start(&tool->aa->trace);
if (params->mode == TRACING_MODE_TRACEFS) {
trace_instance_start(&tool->trace);
- } else {
+ } else if (!params->has_instance_count_fields) {
+ /*
+ * Without instance count fields, play safe and attach the BPF program
+ * after starting the trace instances.
+ *
+ * This might lead to samples being seen only by trace output and
+ * auto analysis, but it is better than RTLA reporting results over
+ * threshold that cannot be analyzed further.
+ */
retval = timerlat_bpf_attach();
if (retval) {
err_msg("Error attaching BPF program\n");
--
2.52.0
Powered by blists - more mailing lists