From patchwork Tue Jun 6 16:27:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Salisbury X-Patchwork-Id: 1791304 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=Ohsd6wZx; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QbG9G2pYqz20WK for ; Wed, 7 Jun 2023 02:27:46 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1q6ZX2-0004eR-Os; Tue, 06 Jun 2023 16:27:40 +0000 Received: from smtp-relay-canonical-0.internal ([10.131.114.83] helo=smtp-relay-canonical-0.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1q6ZWz-0004aE-6l for kernel-team@lists.ubuntu.com; Tue, 06 Jun 2023 16:27:37 +0000 Received: from smtp.gmail.com (1.general.jsalisbury.us.vpn [10.172.66.188]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 54BDB3F129 for ; Tue, 6 Jun 2023 16:27:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1686068856; bh=lY+tBNZzSx4UzdtpjgHdu8X/nYo1Fbv7J8OgPt5f2Js=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ohsd6wZxV2T6yO+UhypQ4GicsvpctXoHsFVAKoUjNL6wTmO/ZDDv5/+UUPcUSMDTa 9+hbUcBhjAkiLKxcZD9uzdJrBRQfQYnCBKUbka+Tfkl8D98xbM3GH4F1Yd1ee4h1Vh y3/xxBYMxZcyb47txYGiRelhwGDAXb4ge3Q/8Asw4GEOys5n8xpbxCo38/m2Sej4yc 8pFObFDjwGRZF5kDjoDb2DrSt2cqzHYKzRrAQmxxDM6fgTxXJLvnCNfhftK8IF4bA1 RsyC/o4iRcAwVDaIUyQ7XQa7dbGalTvlAneHWSoRttHiMlXcPLSGc08c4wBxF+fvvc NoVI1hPXzgKhQ== From: Joseph Salisbury To: kernel-team@lists.ubuntu.com Subject: [SRU][Lunar][PATCH 1/1] UBUNTU: [Config] Enable OSNOISE_TRACER and TIMERLAT_TRACER configs Date: Tue, 6 Jun 2023 12:27:34 -0400 Message-Id: <20230606162734.422694-2-joseph.salisbury@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230606162734.422694-1-joseph.salisbury@canonical.com> References: <20230606162734.422694-1-joseph.salisbury@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" 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 --- 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 24cec55b1b20..4c1d9026eb56 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', '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'> @@ -657,6 +660,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'> @@ -8950,7 +8956,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"'}> @@ -13084,7 +13089,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': 'y', 'riscv64': 'y'}>