]> Gentwo Git Trees - linux/.git/commitdiff
rtla/timerlat_bpf: Stop tracing on user latency
authorTomas Glozar <tglozar@redhat.com>
Mon, 6 Oct 2025 14:31:00 +0000 (16:31 +0200)
committerTomas Glozar <tglozar@redhat.com>
Thu, 20 Nov 2025 12:15:55 +0000 (13:15 +0100)
rtla-timerlat allows a *thread* latency threshold to be set via the
-T/--thread option. However, the timerlat tracer calls this *total*
latency (stop_tracing_total_us), and stops tracing also when the
return-to-user latency is over the threshold.

Change the behavior of the timerlat BPF program to reflect what the
timerlat tracer is doing, to avoid discrepancy between stopping
collecting data in the BPF program and stopping tracing in the timerlat
tracer.

Cc: stable@vger.kernel.org
Fixes: e34293ddcebd ("rtla/timerlat: Add BPF skeleton to collect samples")
Reviewed-by: Wander Lairson Costa <wander@redhat.com>
Link: https://lore.kernel.org/r/20251006143100.137255-1-tglozar@redhat.com
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
tools/tracing/rtla/src/timerlat.bpf.c

index 084cd10c21fc4991ef518247f9989d52989f0919..e2265b5d649100a9b0d7d2e2e884f71fafeca266 100644 (file)
@@ -148,6 +148,9 @@ int handle_timerlat_sample(struct trace_event_raw_timerlat_sample *tp_args)
        } else {
                update_main_hist(&hist_user, bucket);
                update_summary(&summary_user, latency, bucket);
+
+               if (thread_threshold != 0 && latency_us >= thread_threshold)
+                       set_stop_tracing();
        }
 
        return 0;