From: Tomas Glozar <tglozar@redhat.com>
To: Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Crystal Wood <crwood@redhat.com>, John Kacur <jkacur@redhat.com>,
Luis Goncalves <lgoncalv@redhat.com>,
LKML <linux-kernel@vger.kernel.org>,
Linux Trace Kernel <linux-trace-kernel@vger.kernel.org>,
Tomas Glozar <tglozar@redhat.com>
Subject: [RFC PATCH 3/3] rtla/timerlat: Attach BPF program before tracers
Date: Fri, 23 Jan 2026 16:25:34 +0100 [thread overview]
Message-ID: <20260123152534.1036533-4-tglozar@redhat.com> (raw)
In-Reply-To: <20260123152534.1036533-1-tglozar@redhat.com>
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@redhat.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
next prev parent reply other threads:[~2026-01-23 15:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-23 15:25 [RFC PATCH 0/3] rtla: Synchronize sample collection methods Tomas Glozar
2026-01-23 15:25 ` [RFC PATCH 1/3] tracing/osnoise: Record timerlat instance counts Tomas Glozar
2026-01-23 15:25 ` [RFC PATCH 2/3] rtla/timerlat_bpf: Filter samples unseen by tracer Tomas Glozar
2026-01-23 15:25 ` Tomas Glozar [this message]
2026-01-24 18:50 ` [RFC PATCH 0/3] rtla: Synchronize sample collection methods Steven Rostedt
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=20260123152534.1036533-4-tglozar@redhat.com \
--to=tglozar@redhat.com \
--cc=crwood@redhat.com \
--cc=jkacur@redhat.com \
--cc=lgoncalv@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@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