diff options
| author | Thomas Richard | 2026-01-05 15:32:44 +0000 |
|---|---|---|
| committer | Hauke Mehrtens | 2026-01-24 21:54:29 +0000 |
| commit | 3ddee7edc491db04008f6eacbb2446e1fb5a13fb (patch) | |
| tree | e2b69ec4f617782562818ffff9fa629613e7d83f | |
| parent | c1c37b40c1769b9b53cf9b0c2a05b0827f829652 (diff) | |
| download | openwrt-3ddee7edc491db04008f6eacbb2446e1fb5a13fb.tar.gz | |
kernel: add TIMERLAT_TRACER kernel config option
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>
| -rw-r--r-- | config/Config-kernel.in | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/config/Config-kernel.in b/config/Config-kernel.in index cb6e49d393..177640d351 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -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 |