From: Thomas Richard Date: Mon, 5 Jan 2026 12:54:42 +0000 (+0100) Subject: kernel: add HWLAT_TRACER kernel config option X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a584c631e30d8d7eb36d12483ef504e2c528d1b;p=thirdparty%2Fopenwrt.git kernel: add HWLAT_TRACER kernel config option This adds the HWLAT_TRACER kernel configuration option. The hwlat tracer allows to detect hardware latencies. Signed-off-by: Thomas Richard Link: https://github.com/openwrt/openwrt/pull/21413 Signed-off-by: Hauke Mehrtens --- diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 870e53206a9..86d99bd49be 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -413,6 +413,41 @@ config KERNEL_PREEMPT_TRACER enabled. This option and the irqs-off timing option can be used together or separately.) +config KERNEL_HWLAT_TRACER + bool "Tracer to detect hardware latencies (like SMIs)" + depends on KERNEL_FTRACE + help + This tracer, when enabled will create one or more kernel threads, + depending on what the cpumask file is set to, which each thread + spinning in a loop looking for interruptions caused by + something other than the kernel. For example, if a + System Management Interrupt (SMI) takes a noticeable amount of + time, this tracer will detect it. This is useful for testing + if a system is reliable for Real Time tasks. + + Some files are created in the tracing directory when this + is enabled: + + hwlat_detector/width - time in usecs for how long to spin for + hwlat_detector/window - time in usecs between the start of each + iteration + + A kernel thread is created that will spin with interrupts disabled + for "width" microseconds in every "window" cycle. It will not spin + for "window - width" microseconds, where the system can + continue to operate. + + The output will appear in the trace and trace_pipe files. + + When the tracer is not running, it has no affect on the system, + but when it is running, it can cause the system to be + periodically non responsive. Do not run this tracer on a + production system. + + To enable this tracer, echo in "hwlat" into the current_tracer + file. Every time a latency is greater than tracing_thresh, it will + be recorded into the ring buffer. + config KERNEL_HIST_TRIGGERS bool "Histogram triggers" depends on KERNEL_FTRACE