From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013019.outbound.protection.outlook.com [40.107.162.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22DCB481AB5; Wed, 3 Jun 2026 17:43:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.19 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780508640; cv=fail; b=REZ6Ho8AaOknCA/HFW+LMxgXi2CPpFjPFU3PIOReB/J5OlNLDYavElaVjRilsl3V1XjH7wFlMaHHDr3S7lS4/JkeQ8TSHFIRVSJj2CdfqTLG7FzytJ+FSmiHAP0oymHyt0hANaM8a/+HTSYYFu0GGoQTFt9nOyEWAwvjbYK5lHE= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780508640; c=relaxed/simple; bh=syIiSLzTslOa/iARhIAEp1YxcgsuWQ88mMQyVHe0HuY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=nHwEFi6fPSSV7H403n/X0SgavIBHaZMubMlUHIDc7velBvLgCCboxLclhio7CUGSaDR4yR4nrAs96IpSBGvQnoRM84eTLs39baiAXqWgSlkKrQaItmh189QsTs0BABSlqlZmDpDbhef22Wt/hgxl1nYk6z7Lnx6PDJN6jlhYEMo= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech; spf=pass smtp.mailfrom=est.tech; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b=z9H5Vghj; arc=fail smtp.client-ip=40.107.162.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=est.tech Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=est.tech Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=est.tech header.i=@est.tech header.b="z9H5Vghj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GJr5CT1TwO/1XYiRfxRRYgItgjnUvhU1p8cYQKQMD5SvGIB8HoOEHuBvS6FH/ccSH4ZUjPmMR9PDj2cIssihpIzpl9VvdZeiFOv+Ak/KtTA89veyEF8+T3cbkWJhJEEqjssQlanVQtawhVfLhODTer23Dlc/iD8KOmCrorOHFi1JqfWCYM+zFM4/YjgHkyn9nBiJ39b5+4XnaTO/I+k4cAhnvkQvLii9nL29Lotc3STMUFNX5aKUro6g0YIHDd3Gqc/Q/HEwi6m9AygZtNFCQGY5oKQGL6GGMMU9iGFyjJdiTmEl7hxwPIEB9jsjtF1W4azdI3vZCP0TFmyuhOEdwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=e09OlxeWLs2PvX07k0LCCp/tdU+Z4gcnbWiixtMl0ls=; b=riEsfIxQ7e4yYnIJrFLleOfRekIsIJEOSURQTfbhoFmL1vF75bEl0qQxHiks2DNB8aH7UwkdaFpu+1d4DD2Ptgnp4uVVs+Q02VvfYoR+WM3BVkFDf/LIzp72DoWtdwx0nKvHxndaEnv7gBKEw2ntS2UpPyo/v1UpBC1c4qgrLW1NEBoRPZrQ3VzCLzh4TvTHsUWzUzThBQMPL4ZJcdWAgxGdlhlmOm6KXqwhCITMeHAiBb1v9fdhX8yIU9/DyOZx+VGytnkOlg+at+7HJo1ux1vhsOmAResAiPurfsnzxdGzCDODjv3PyWKS2S6NZGr9DkTPl0ZpBdpfrZpei9cJMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=est.tech; dmarc=pass action=none header.from=est.tech; dkim=pass header.d=est.tech; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=est.tech; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e09OlxeWLs2PvX07k0LCCp/tdU+Z4gcnbWiixtMl0ls=; b=z9H5VghjFZxUQ2Z+Y47f7e5niqdRarI63QEN0H/MqWpTVmg6kvF/LJ+PO0cOUUtiF4+4i9+r4JECX01VCPObp9SC6tPmNx+Z2RDjb907tUM/JpqXeuvuYalErUm4KnI30z3kfW4M+n6+0wP32zqSKWDwGSgexJKuQQ92WMOOCOmkqJpItLdDD+o0+KtUojLwuO+yfvlYnfsSj7UQGNhA8hLGPu1KgWGXUQxDFmcwqzYXGckFVZhEh5emBBgIQjmpgHW58Eo7Wd03N9L2jEEmHw22meYYp8i4pwCip98nJQKyWWXYDJ0w7xrEsDJ9LFbkw+384/zhI09ohOdIZ/FSbA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=est.tech; Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) by AM7P189MB0616.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:116::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 17:43:55 +0000 Received: from AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4]) by AS8P189MB1752.EURP189.PROD.OUTLOOK.COM ([fe80::69fc:c4d4:200b:e4b4%7]) with mapi id 15.21.0092.006; Wed, 3 Jun 2026 17:43:54 +0000 From: Yunseong Kim Date: Wed, 03 Jun 2026 19:43:32 +0200 Subject: [RFC PATCH v2 5/6] kcov: add interrupt context guard to kcov_df_write() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260603-kcov-dataflow-next-20260603-v2-5-fee0939de2c4@est.tech> References: <20260603-kcov-dataflow-next-20260603-v2-0-fee0939de2c4@est.tech> In-Reply-To: <20260603-kcov-dataflow-next-20260603-v2-0-fee0939de2c4@est.tech> To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Dmitry Vyukov , Andrey Konovalov , Andrew Morton , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Nicolas Schier , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Jonathan Corbet , Shuah Khan Cc: Yunseong Kim , linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, llvm@lists.linux.dev, linux-kbuild@vger.kernel.org, rust-for-linux@vger.kernel.org, workflows@vger.kernel.org, linux-doc@vger.kernel.org, Yunseong Kim X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1780508619; l=1825; i=yunseong.kim@est.tech; s=20260426; h=from:subject:message-id; bh=syIiSLzTslOa/iARhIAEp1YxcgsuWQ88mMQyVHe0HuY=; b=WkgWVJI13YtXgbZRBMyilflGfOSTfXAgAORyoMhok5V5YVsa8u0vKi4D8B2gbxsVFm3fyHNcI RO3s+88kwo2Bq0bdlreLjFLNBWpyublMl48WDxwG9uyHg0uAi1JP5hq X-Developer-Key: i=yunseong.kim@est.tech; a=ed25519; pk=1nBUX92cvTaavYG1+MR073D+XMKhdOciBZcnf6h6qEo= X-ClientProxiedBy: DB8P191CA0020.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::30) To AS8P189MB1752.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:39b::19) Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P189MB1752:EE_|AM7P189MB0616:EE_ X-MS-Office365-Filtering-Correlation-Id: 46f20328-31e8-4cc7-e6bc-08dec197ae98 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|22082099003|18002099003|921020|11063799006|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: sLkTx17tbmetY3BgEaJDquyeS7sHSAoMBy6UqAEsjrkMMkMVjIO88pD1AoFKlCuRBkbAaZSqBCKL8WDufXF2JgwOEvIP0mpmBSln6vYcuuTNqlDQLrbW35wMmpotMConDj8wEOqv4YygaCDImYG5dHyZHm09KcHnKlT4BzfKgoE8AXQTo8gwra8ul9FqwI0Zr50CjW/b+aXUH1IIHNawknhMOpM5L0hzcUhjEdI9mGFdWm4POPJ4XDA/gIRYBvgsqfEl69XBU8hG9LEt0Orgi42KVkzzBnGAytQlSIxh8QM9QZ3nfunQzQ73P2WijhCS331MbVCa7mnRBiWEC6SIf1OeoRH2x/YnXmpSD43N32lHDUhdqRyrDTocWFfXBXUb7mlv7uv/dK5dOcrp7Ucp8EuS9UQnsshQ/cGKKoHTA3a0tpimizSftleawb6h/5A4z5SW1Bv3czPsKFAvQh2Page4dLgqMEykfwP2F9qoZV889GoI1msnYPId39T9kOkDdEOPfMQdoqDmxFHHTuGc1viHtMiYILo7mO/c/dQNari8R6DaTPEPeFbN/ed7BEJe11zBBc8ktlOTybgQeaEqW7YJ1rnl06c/x5A93E9yH9Vb4yIrrvVnS/+uMohMLzxWGxeR5w1bm0Ous5mP54aj2MRzR5oSefzla1k+XuX7J9BxiSOy+eG6yRpVdRBzs+ghGgelMeyphNt2v2HMFpkQ2DnyRHFSxgfoxlcKrsWbz7c= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8P189MB1752.EURP189.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(22082099003)(18002099003)(921020)(11063799006)(6133799003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z1FBMUdpYVVrM2lpdHZTVmFPMnA2bllaeUtscmhYRFB3VCtpV2U2VlVqbmM3?= =?utf-8?B?ZXVaUFMvMmVoZlgraWtHS2g4NlRtMk5hQUUxVW11QWVodW90bFZ5MEVsNmc0?= =?utf-8?B?bUI1TWtVeWhXMy9hVFRUR0d5Z1JxSERHaWVJYTI0MmVMdnc1Nkk0MEhIREdK?= =?utf-8?B?K0VLQmxETUtwTVBSTDNPRWtaaEVWcnNtRHZ5SVNBa3p0elVEWEpuaW9vL1Ux?= =?utf-8?B?MmhBQ3hjTGFQNFk4amRQa2o5Z0lhQUZMdzViZEkzRlc1d2VaSjRYV3grYWpL?= =?utf-8?B?VHZla24rRENIU01HcTM3QzRUNmxHN3pVdDQ1OGZvYjcyR2QvYmhscXU2a0Zs?= =?utf-8?B?bVNOeThHSGJrd01KQ0pGVTFCdEFKbnd6NFJreHRIMysxYlM0YW9UV2QxNjJX?= =?utf-8?B?K1FhNDJxUisycVBTZm9RcnRIelhoVm1QQURTSUZ0N01SOGpUSnE5eGxCQzlB?= =?utf-8?B?RDI2R0FpTWRnNS9nVFZDM2NGVitXd1hoOERiMUxCcCtaeGpWSjFQb25jSXZp?= =?utf-8?B?Y2VhOEhJcUdHaWlodXFGY3UxQjVzeC9yOGpUM2xMVDZFbnhnY0JYb2h5VVBw?= =?utf-8?B?MzRLeXczblhIWGhxVXZQamJ6Yk9ESWFhVGxRYVlWUEJhRDgweDFSNEVwVkgv?= =?utf-8?B?b1JPMzJOU2RiSmx3eWpFd2c1OUY5ajVaemMrZEpkTFF4dXdxTXByalg1VnZT?= =?utf-8?B?cnZ6UFVaZmdleXdVNkNNUXJPdDdQc2daSHI0REZhcG1WWXNjeWJxZG9taThS?= =?utf-8?B?ZDhhNmwrWDcyQ1Q2SUF6ZXNBQ080cWxLMjlPMnQyVmp5U0UwamUrOVNDaEFt?= =?utf-8?B?MmhTU3BpVFJxNmhkdGsrbzhqMWc4RUhaWU1YWXlwQzAwR2VEY25CZTJRVHJr?= =?utf-8?B?MGVScmhzSFNleGZISWxRV090aXB5VUVRYnBySVFZWi9TTVR5V25IM05kOVhk?= =?utf-8?B?WUVhQzNzOTJxRHpKSjJnRCtCRmx6OUlDUDNubHZpRVdub0hkaUtCVkRDTzhQ?= =?utf-8?B?dnJBUlB3TUJES01nQkg4YTdvazc4UTFUL25jUnR6SkpxbjhucnAva2JHMUMx?= =?utf-8?B?YTczbVp3M1pvV2VoWEFUbDUyeW1XUTNyaDlDVFg2YmZRY3IvVTdYSDZRdUNY?= =?utf-8?B?NS9xOWhwZEdjMXBwRk9mOGxuei9ETURnZ3o2bmNjUGtnbGgyT3B1K0VYRzRB?= =?utf-8?B?bktjZWxPa1ZvRFdoOC91QVc1SzBYd3FTWGwxK3BsaUk1WnJpSUQ3TXZ2emlH?= =?utf-8?B?cFpibjdGOGhtRFdMOWxCc2FVaGNEK2xWTWxMOTczKzQ1dGI3RUdEZlYvZ0gx?= =?utf-8?B?WEp1WVJIVnNwWFZUWk0yVzJjMEM2T2IzV1EzRGxXRksvRkY3c2hTaTB5dlVk?= =?utf-8?B?N0VMdVNOSEFCTHltd2loV3JjMFpaNUpubDVWd0ZtTitWeENVVDcwMjJKaUcr?= =?utf-8?B?QmV4UGlXS3ZVQnBvcFZicnlzanlWdWNqbTZiaHN0NWZJU3F5M2x6a3NSZ3o5?= =?utf-8?B?bHdrdklYRVQzeHMrcDZId1FVckprS01SaVRTekJMQUV5ektxbFM3a0dzQWts?= =?utf-8?B?NzlvUVdKYzFOb016VGRvai85K0NhQzV1Z0RnNE1lOTNvNnRGTnBDUC9UVUlZ?= =?utf-8?B?YXJXclYvUzRjZzV2T0tLRlRHOE5sQmJmVEdNQTBiblM1NzIyZkQ5Wm5yakVi?= =?utf-8?B?anFqMDR5L2NMaGMwMklEaHlzU21CT1pMbjVsM1I1ckFaa005U2djdW9RSmdk?= =?utf-8?B?ZERjc21NVzZVanBpaFI5T251T0xCUGo3SlpLVDlsWmtiT0dNRlRKVVNPTXpL?= =?utf-8?B?SjBRa201QjQvRFM3U2s0TDJORStYTUhacTJyZkcwRFU5akM5RExaYUZKQjBB?= =?utf-8?B?RU9QcU5KZmg5U1Q3ZWJTclhWcVliV0ZPS2ZYSXFNVHFpcnNFYm13VnRSQjNl?= =?utf-8?B?dWFJbGVDSngvSng5OU5idkMwb1dMRWI0TE4rcS9PT1d4eFViTGN6NWNHNUlD?= =?utf-8?B?OURoY25xaFY3OFl6UXpxUmYyb2VFb1ZyMU56U2RURW9zQStVV2lwcXQrRGli?= =?utf-8?B?WTZaQ0JIMFdJZjZOemJreU9KSW1IMk9hQTJuZ2VCMzdCZGtZUWw2eXVKN2FH?= =?utf-8?B?Vm16ZXJPaUd0MUtySmJPdlpYS2F1WFVPSmpqWTZ1RzM2ckhJeHZuSEcvVnhL?= =?utf-8?B?dkc3UGUrUC9vbCs5dXlHSnFXaUNMRnlWNGFTNmNQaVA0K3J5d1VFYUFrNG1O?= =?utf-8?B?T0htTFV0UlNZemoxY0VWSEhHaS94Z0NJU3gxQm13bXZiRHlQK1hGWFIxcGtm?= =?utf-8?B?bjlrdGJSR0hidXpZcVlTZzVHekV5bGhtMzRTNkV1WlJHOWNPcElwUT09?= X-OriginatorOrg: est.tech X-MS-Exchange-CrossTenant-Network-Message-Id: 46f20328-31e8-4cc7-e6bc-08dec197ae98 X-MS-Exchange-CrossTenant-AuthSource: AS8P189MB1752.EURP189.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 17:43:54.7837 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d2585e63-66b9-44b6-a76e-4f4b217d97fd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /j62YgOyZvu6zqBj8cXjp+Y0HJbFUVbKo61d+QIMWuYptKit09HfEUwH/ONvhAIJ7xzzTtU6lxoi3M5ftFqL6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7P189MB0616 The KCOV-Dataflow write path (kcov_df_write) only checks t->kcov_df_enabled before writing to the shared ring buffer. Unlike the standard KCOV check_kcov_mode() which rejects interrupt context, kcov_df_write() has no such protection. This means instrumented code running in hardirq, softirq, or NMI context that interrupts a task mid-write can re-enter kcov_df_write(), causing: - Data corruption in the ring buffer (interleaved records) - Out-of-order sequence counter increments - Potential faults from nested pointer dereferences Add an in_task() check to reject calls from non-task context, matching the safety model of the standard KCOV tracing path. Also suppress -Wmissing-prototypes in the eight_args_c test module Makefile, as the exported test functions intentionally lack a shared header. Signed-off-by: Yunseong Kim --- kernel/kcov.c | 4 ++++ tools/kcov-dataflow/eight_args_c/Makefile | 1 + 2 files changed, 5 insertions(+) diff --git a/kernel/kcov.c b/kernel/kcov.c index d3c9c0efe961..373b8034ca5c 100644 --- a/kernel/kcov.c +++ b/kernel/kcov.c @@ -409,6 +409,10 @@ kcov_df_write(u64 type_marker, u64 pc, u64 meta, void *ptr, if (!t->kcov_df_enabled) return; + /* Reject calls from hardirq/softirq/NMI to prevent reentrant corruption. */ + if (!in_task()) + return; + area = (u64 *)t->kcov_df_area; if (!area) return; diff --git a/tools/kcov-dataflow/eight_args_c/Makefile b/tools/kcov-dataflow/eight_args_c/Makefile index de35bb541f07..038775b49435 100644 --- a/tools/kcov-dataflow/eight_args_c/Makefile +++ b/tools/kcov-dataflow/eight_args_c/Makefile @@ -1,2 +1,3 @@ obj-m := eight_args_mod.o KCOV_DATAFLOW_eight_args_mod.o := y +ccflags-y += -Wno-missing-prototypes -- 2.43.0