]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: add TIMERLAT_TRACER kernel config option main master 21413/head
authorThomas Richard <thomas.richard@bootlin.com>
Mon, 5 Jan 2026 15:32:44 +0000 (16:32 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 24 Jan 2026 21:54:29 +0000 (22:54 +0100)
This adds the TIMERLAT_TRACER kernel configuration option. The timelat
tracer helps to find sources of wakeup latencies of real-time threads.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
config/Config-kernel.in

index cb6e49d393a5eb2d72d82505dfe8240eac356d24..177640d351071a1d94a894b8de65fa091e0ca7bf 100644 (file)
@@ -482,6 +482,33 @@ config KERNEL_OSNOISE_TRACER
          To enable this tracer, echo in "osnoise" into the current_tracer
          file.
 
+config KERNEL_TIMERLAT_TRACER
+       bool "Timerlat tracer"
+       depends on KERNEL_FTRACE
+       help
+         The timerlat tracer aims to help the preemptive kernel developers
+         to find sources of wakeup latencies of real-time threads.
+
+         The tracer creates a per-cpu kernel thread with real-time priority.
+         The tracer thread sets a periodic timer to wakeup itself, and goes
+         to sleep waiting for the timer to fire. At the wakeup, the thread
+         then computes a wakeup latency value as the difference between
+         the current time and the absolute time that the timer was set
+         to expire.
+
+         The tracer prints two lines at every activation. The first is the
+         timer latency observed at the hardirq context before the
+         activation of the thread. The second is the timer latency observed
+         by the thread, which is the same level that cyclictest reports. The
+         ACTIVATION ID field serves to relate the irq execution to its
+         respective thread execution.
+
+         The tracer is build on top of osnoise tracer, and the osnoise:
+         events can be used to trace the source of interference from NMI,
+         IRQs and other threads. It also enables the capture of the
+         stacktrace at the IRQ context, which helps to identify the code
+         path that can cause thread delay.
+
 config KERNEL_HIST_TRIGGERS
        bool "Histogram triggers"
        depends on KERNEL_FTRACE