diff mbox series

[SRU,Jammy,1/1] UBUNTU: [Config] Enable OSNOISE_TRACER and TIMERLAT_TRACER configs

Message ID 20230606162727.422681-2-joseph.salisbury@canonical.com
State New
Headers show
Series UBUNTU: [Config] Enable OSNOISE_TRACER and TIMERLAT_TRACER configs | expand

Commit Message

Joseph Salisbury June 6, 2023, 4:27 p.m. UTC
BugLink: https://bugs.launchpad.net/bugs/2018591

Enable these two configs to allow the use of the osnoise and timerlat tracers.

The osnoise tracer leverages the hwlat_detector by running a similar loop with
preemption, SoftIRQs and IRQs enabled, thus allowing all the sources of
osnoise during its execution. The osnoise tracer takes note of the entry and
exit point of any source of interferences, increasing a per-cpu interference
counter. It saves an interference counter for each source of interference. The
interference counter for NMI, IRQs, SoftIRQs, and threads is increased anytime
the tool observes these interferences' entry events. When a noise happens
without any interference from the operating system level, the hardware noise
counter increases, pointing to a hardware-related noise. In this way, osnoise
can account for any source of interference. At the end of the period, the
osnoise tracer prints the sum of all noise, the max single noise, the
percentage of CPU available for the thread, and the counters for the noise
sources.

The timerlat 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.

Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>
---
 debian.master/config/annotations | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/debian.master/config/annotations b/debian.master/config/annotations
index be67f2c2c751..3d5ebf5b267a 100644
--- a/debian.master/config/annotations
+++ b/debian.master/config/annotations
@@ -444,6 +444,9 @@  CONFIG_NVRAM                                    note<'LP#1837726'>
 CONFIG_N_GSM                                    policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 's390x': 'n'}>
 CONFIG_N_GSM                                    note<'LP#1404670'>
 
+CONFIG_OSNOISE_TRACER                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_OSNOISE_TRACER                           note<'This enables the osnoise tracer for the kernel. LP: #2018591'>
+
 CONFIG_PAGE_POISONING                           policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
 CONFIG_PAGE_POISONING                           note<'LP:1783651'>
 
@@ -693,6 +696,9 @@  CONFIG_TCG_TPM                                  note<'needed for early validatio
 CONFIG_TEST_BLACKHOLE_DEV                       policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 's390x': 'm'}>
 CONFIG_TEST_BLACKHOLE_DEV                       note<'Used by net selftests'>
 
+CONFIG_TIMERLAT_TRACER                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
+CONFIG_TIMERLAT_TRACER                          note<'This enables the osnoise tracer for the kernel. LP: #2018591'>
+
 CONFIG_TMPFS_POSIX_ACL                          policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
 CONFIG_TMPFS_POSIX_ACL                          note<'some /dev nodes require POSIX ACLs, like /dev/dsp'>
 
@@ -8616,7 +8622,6 @@  CONFIG_ORION_IRQCHIP                            policy<{'armhf': 'y'}>
 CONFIG_ORION_TIMER                              policy<{'armhf': 'y'}>
 CONFIG_ORION_WATCHDOG                           policy<{'armhf': 'm'}>
 CONFIG_OSF_PARTITION                            policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'n'}>
-CONFIG_OSNOISE_TRACER                           policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}>
 CONFIG_OUTER_CACHE                              policy<{'armhf': 'y'}>
 CONFIG_OUTER_CACHE_SYNC                         policy<{'armhf': 'y'}>
 CONFIG_OUTPUT_FORMAT                            policy<{'amd64': '"elf64-x86-64"'}>
@@ -12421,7 +12426,6 @@  CONFIG_TIFM_CORE                                policy<{'amd64': 'm', 'arm64': '
 CONFIG_TIGON3                                   policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}>
 CONFIG_TIGON3_HWMON                             policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>
 CONFIG_TIMERFD                                  policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}>
-CONFIG_TIMERLAT_TRACER                          policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}>
 CONFIG_TIMER_ACPI                               policy<{'arm64': 'y'}>
 CONFIG_TIMER_IMX_SYS_CTR                        policy<{'arm64': 'y'}>
 CONFIG_TIMER_OF                                 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}>