From nobody Mon Jun 8 22:53:03 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C5382C11FA for ; Mon, 25 May 2026 17:04:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779728676; cv=none; b=Wv8lvqyHCFp8OVqlgJ5tycP/fNGAMK5oG0ZYrSG2L4ruuSQbDJwsdc59sJh9SZjh7kbR8QWAc4NK/esirkHXVeKIiD3DgC47XY6hrHJq6DwPImQ7GBoC4LNQLfvZmIZarJYPR952/Tou+N44wHWdx9EmD4bUt97KL3uPlP6aIMI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779728676; c=relaxed/simple; bh=PcXPCW/yoIMVKX3ScIB1BHyYd8omgOqK7kVsG8gOFJ4=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=kTyJ1Ypxod7MZbhsXWurT4P/+ZuqIvShj5YVb/qSUZ3LXfl+cdi8+LUKGpJ0eQGV01ZwzZSyMgybcjys56s4+RJqtkizvfdNMgp4NeSUtHd53/Fq01DqhD1gRDEeN8+Us0LWoYlD0vWCmabyLpU/e+x5r7acapviGtltoYdaJGs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=pQZHmhkz; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pQZHmhkz" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4891c00e7aeso67441915e9.2 for ; Mon, 25 May 2026 10:04:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779728673; x=1780333473; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=XmeW5o8MdJknDGHVfNB5TfOkmVnLEd+83DVfIpbufx4=; b=pQZHmhkzqk/V5HjdmRFkHep0tRcHxPsPNjnhT3MY79VRKMMCaSmY8g2NFw4p/wWP+h sUqTAkh9ufDfpS3GqwBHEdeD6OO0/9QMDW+5CVUDu6y7qzuORrXoOebn3/JMAXV53qDO h18jjUfd7cL1a0FsTdzp1qpYJcz3i083jnHTrkSCtaw0ewW+r/tu2Aq0pGXjhTzF4CCI Y+H8rO+Df47AQ7tBV8ty8QVTzBlB6VVEdPnvh+cluQVAcfftYTmFgxNC4ybiVCdyPnxs mIu1TA7nNwQOAWMv990wnZWqqBCMOVgMjSYPNHm0WOlIJjFC2bl44nLhlS+3JuNPCe3H 1nBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779728673; x=1780333473; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=XmeW5o8MdJknDGHVfNB5TfOkmVnLEd+83DVfIpbufx4=; b=lPmlcx7QmUxjy+J7hHk6GIHMIrOdLO2DFob3BqgF9U9JRyaf4OQOIs8NrpMwfFic1L e0txXvzwQQSkGMCtQWRbaS+hgk9pm69vZdZU/jN0EW/8J6gQE8FqLpxTkrncQ1jZw7FP aKXY2nElWcw1L992z5oHmW7wmZiGqzuz/qrI/hmVpomZBN21mEKQvz5XCOflqKVb8+a/ gPauyg7EF4dMEER93tGfKZiH33Hi4wz38B/wRDiHvb3zv7R8FmKJYzDmtrxHHPpZ0DvE qvDAGx3AezefrwDCztwQWWkahPMySsB5fNgyYD27iNB2mbWStwnLAbCWuAqpHiP4ZADU jxBA== X-Forwarded-Encrypted: i=1; AFNElJ/gLkl5el5PfEMn7nddIzELwJK1Q5o4D9NIO3pOjYr890JV3XAjZrU7E4L9CG7lG6MwDB7rme9TU6JVSaY=@vger.kernel.org X-Gm-Message-State: AOJu0YzhRtUb3BG7rj6XjqGlZepS0kBxnYRwcKtbtcS9xUEKAgv9t87h EbuL6Gd4rS9iUBQ33SySi8UFXHSUX40oFRZ+7UeyFUmiiaiM5GQ7nrjB X-Gm-Gg: Acq92OG683Wm5gAXQlOfnDfvIXJsZQQvhQb7Z7CEr3N+czev3N80qDVgeq+C6i9yMjH EqnIbhNaXTX5RCbxE9kngEVz3Ula31gW1Mz6sxYRT1BvTlGZ2TmYjUza8t1vZfvT+PJ8BWdOEFz DlJrkfk6vIJQibIneP8ZT2byAmu2/iiu7cMmyd+fGHb9U3LQTzXZlZqWe0dRpLGiVM5Noio8pBK 1vH2x2zKhEs6hKWTYAEHNCeEsOrSRV5a6emrNgVA7FLvVs+eyuRuE6QdKtHI3JDhlSwGZJXjLXl 7YTepL4iM19rcG5KsUsSOuL7rFyCqDX5IJeJBix8/RZbKym+pBb4JMNaI0t44oB30X9bfAyIHCU CYOon6/K/KfNhztPIGZwnxbAIUyJF1LMLQrY84Ng2of0LF6NIY+KoxeMsoxj2gLWkUdWrVVTNso 1n+JWnNBXfGJHB7oASkeeMHqMHkyRFNv+Ma0xLXnrV4FUXxTSM2e0McD7XgH/yIgvbJRuFLPVo9 FhpjqeTasIE2eCK650zEefX+hV2QsvlPmJK7I6NWLRlZRY+uE77Hx7mjR8bvuv2aa1PW4VPhWbv vtNWqQyOhLBAFAmlgVAsmYHF+TXr9T5Y7UzRA1i/ X-Received: by 2002:a05:600c:3106:b0:490:6889:1ff with SMTP id 5b1f17b1804b1-4906889025dmr54325725e9.28.1779728672490; Mon, 25 May 2026 10:04:32 -0700 (PDT) Received: from localhost.localdomain (dynamic-2a02-3100-a9eb-0401-e55f-5ad5-546a-1b1a.310.pool.telefonica.de. [2a02:3100:a9eb:401:e55f:5ad5:546a:1b1a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490452580dfsm136970515e9.1.2026.05.25.10.04.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 May 2026 10:04:32 -0700 (PDT) From: Karl Mehltretter To: Steven Rostedt , Masami Hiramatsu Cc: Mathieu Desnoyers , Dmitry Vyukov , Andrey Konovalov , Marco Elver , kasan-dev@googlegroups.com, linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org, Karl Mehltretter Subject: [PATCH] tracing: Disable KCOV instrumentation for trace_irqsoff.o Date: Mon, 25 May 2026 19:04:28 +0200 Message-Id: <20260525170428.67211-1-kmehltretter@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When KCOV runs its boot selftest with whole-kernel instrumentation enabled, it sets current->kcov_mode to KCOV_MODE_TRACE_PC without installing a coverage area. Any instrumented code accepted as task-context coverage in that window dereferences current->kcov_area and crashes. On ARMv5 Versatile PB with CONFIG_KCOV_SELFTEST=3Dy, CONFIG_KCOV_INSTRUMENT_ALL=3Dy and CONFIG_IRQSOFF_TRACER=3Dy, boot hits a NULL pointer fault during the selftest: kcov: running self test Internal error: Oops: 5 [#1] ARM PC is at __sanitizer_cov_trace_pc+0x4c/0x90 Kernel panic - not syncing: Fatal exception A diagnostic run showed the unwanted coverage comes from the IRQs-off tracer callbacks reached from ARM IRQ entry before hardirq context is visible to KCOV: __sanitizer_cov_trace_pc from tracer_hardirqs_off+0x18/0x1cc tracer_hardirqs_off from trace_hardirqs_off+0x34/0x54 trace_hardirqs_off from __irq_svc+0x58/0xb0 __irq_svc from kcov_init+0x7c/0xdc and similarly through tracer_hardirqs_on(). trace_preemptirq.o is already excluded because this tracing path can run from early interrupt code and produce coverage unrelated to syscall inputs. Exclude trace_irqsoff.o as well, instead of requiring users to turn off CONFIG_KCOV_INSTRUMENT_ALL=3Dy, which is the default whole-kernel KCOV mode. With the exclusion in place, the same ARMv5 Versatile PB QEMU test boots through the KCOV selftest and reaches userspace. Tested on ARMv5 Versatile PB QEMU with CONFIG_KCOV_SELFTEST=3Dy, CONFIG_KCOV_INSTRUMENT_ALL=3Dy and CONFIG_IRQSOFF_TRACER=3Dy. Assisted-by: Codex:gpt-5 Signed-off-by: Karl Mehltretter --- kernel/trace/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile index 8d3d96e847d8..f934ff586bd4 100644 --- a/kernel/trace/Makefile +++ b/kernel/trace/Makefile @@ -48,9 +48,10 @@ ifdef CONFIG_GCOV_PROFILE_FTRACE GCOV_PROFILE :=3D y endif =20 -# Functions in this file could be invoked from early interrupt -# code and produce random code coverage. +# Functions in these files can run from IRQ entry before hardirq context +# is visible to KCOV, and produce coverage unrelated to syscall inputs. KCOV_INSTRUMENT_trace_preemptirq.o :=3D n +KCOV_INSTRUMENT_trace_irqsoff.o :=3D n =20 CFLAGS_bpf_trace.o :=3D -I$(src) =20 --=20 2.39.5 (Apple Git-154)