From eff316babae5ce525e3216dd0d11348e52f14c59 Mon Sep 17 00:00:00 2001 From: Joseph Salisbury Date: Tue, 6 Jun 2023 12:27:41 -0400 Subject: [PATCH] UBUNTU: [Config] Enable OSNOISE_TRACER and TIMERLAT_TRACER configs 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 Acked-by: Tim Gardner Signed-off-by: Andrea Righi --- debian.master/config/annotations | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/debian.master/config/annotations b/debian.master/config/annotations index f1d82e20d33c..146f9ee38162 100644 --- a/debian.master/config/annotations +++ b/debian.master/config/annotations @@ -438,6 +438,9 @@ CONFIG_NVRAM note<'LP: #1837726'> CONFIG_N_GSM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> CONFIG_N_GSM note<'LP: #1404670'> +CONFIG_OSNOISE_TRACER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'riscv64': 'y', 's390x': 'y'}> CONFIG_PAGE_POISONING note<'LP: #1783651'> @@ -645,6 +648,9 @@ CONFIG_TCG_TPM note<'needed for early validatio CONFIG_TEST_BLACKHOLE_DEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> CONFIG_TEST_BLACKHOLE_DEV note<'Used by net selftests'> +CONFIG_TIMERLAT_TRACER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'riscv64': 'y', 's390x': 'y'}> CONFIG_TMPFS_POSIX_ACL note<'some /dev nodes require POSIX ACLs, like /dev/dsp'> @@ -9090,7 +9096,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', 'riscv64': 'y', 's390x': 'n'}> -CONFIG_OSNOISE_TRACER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> CONFIG_OUTER_CACHE policy<{'armhf': 'y'}> CONFIG_OUTER_CACHE_SYNC policy<{'armhf': 'y'}> CONFIG_OUTPUT_FORMAT policy<{'amd64': '"elf64-x86-64"'}> @@ -13309,7 +13314,6 @@ CONFIG_TIFM_CORE policy<{'amd64': 'm', 'arm64': ' CONFIG_TIGON3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> CONFIG_TIGON3_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> CONFIG_TIMERFD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> -CONFIG_TIMERLAT_TRACER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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': '-', 'riscv64': 'y'}>