From nobody Sat Feb 7 14:52:38 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 8282535DCEA for ; Tue, 27 Jan 2026 15:06:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769526367; cv=none; b=mGKfZ73vYE+jxVv6L3GLfzSeVji9t3Zrdl+pk0UnVEC+XWKGhgtTkYICVnDvGpcs90hxVZMVViB9l1XD7JErgGCHgWkgP9k0Qw74Th/a6lyQEhtuF3ftD7yfrbSb7eioeg0RyPE7Xgi3d2LMaCZ1p4iJdd1h/5K/jBZ5qX0Ucdg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769526367; c=relaxed/simple; bh=ofdWWKG2mHqrOT4Kc9hAyRRZxkIc65bzAv8uBbcH4hk=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=GhwWVynXJln0eDzn03LwPf+tFU2Xo40aralL43yPxEHRMHrQ07azkPGZ5gTs/YQH6Engadih/jLq5ITZKzLncr65n+xodrf0WLw6QHtO6iMik3sLwZM82euJqAJ3uW/KZsgxJdDdlFT1cSdYSwhDwBoYXEQWARQiGG/Jy3rthqE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mW6Cx5/b; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mW6Cx5/b" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 678FBC2BCAF; Tue, 27 Jan 2026 15:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769526367; bh=ofdWWKG2mHqrOT4Kc9hAyRRZxkIc65bzAv8uBbcH4hk=; h=Date:From:To:Cc:Subject:References:From; b=mW6Cx5/bQucnWM1VWm//s55jrf++KIMvoCJwAqD0hQGwVXdix6PSTdPZ7XJfnkAnp uxZ2VVsW29dLIVV6CgsgQg0yLbO94ATj16grDgRdokyWvOUwlIEo94TsJwejlflc4g 6u+wSw5URxDw4sacaMLHsNMkAwStdWVj4XmbNxmKstHnJZGDGYp5ML7SwiUUWIJVVj KWh46/PaQZb0zSF3Q+7znXIvS1HOAzmWmpBPSVyGDiurbciJVB0XkxM4PNsTpdGI8l xQj7/TCqX9KhrbQF64w6XFvTrLZzogemzSw61p38vh/omdfUWFF7MTdsFsz86vpFL5 Wi6979Kp84Ngw== Received: from rostedt by gandalf with local (Exim 4.99.1) (envelope-from ) id 1vkkdx-00000000LfU-161V; Tue, 27 Jan 2026 10:06:13 -0500 Message-ID: <20260127150613.117137449@kernel.org> User-Agent: quilt/0.68 Date: Tue, 27 Jan 2026 10:06:06 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton Subject: [for-next][PATCH 11/15] tracing: Disable trace_printk buffer on warning too References: <20260127150555.840066272@kernel.org> 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" From: Steven Rostedt When /proc/sys/kernel/traceoff_on_warning is set to 1, the top level tracing buffer is disabled when a warning happens. This is very useful when debugging and want the tracing buffer to stop taking new data when a warning triggers keeping the events that lead up to the warning from being overwritten. Now that there is also a persistent ring buffer and an option to have trace_printk go to that buffer, the same holds true for that buffer. A warning could happen just before a crash but still write enough events to lose the events that lead up to the first warning that was the reason for the crash. When /proc/sys/kernel/traceoff_on_warning is set to 1 and a warning is triggered, not only disable the top level tracing buffer, but also disable the buffer that trace_printk()s are written to. Cc: Masami Hiramatsu Cc: Mathieu Desnoyers Cc: Mark Rutland Link: https://patch.msgid.link/20260121093858.5c5d7e7b@gandalf.local.home Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 870205cba31e..396d59202438 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1666,9 +1666,18 @@ EXPORT_SYMBOL_GPL(tracing_off); void disable_trace_on_warning(void) { if (__disable_trace_on_warning) { + struct trace_array *tr =3D READ_ONCE(printk_trace); + trace_array_printk_buf(global_trace.array_buffer.buffer, _THIS_IP_, "Disabling tracing due to warning\n"); tracing_off(); + + /* Disable trace_printk() buffer too */ + if (tr !=3D &global_trace) { + trace_array_printk_buf(tr->array_buffer.buffer, _THIS_IP_, + "Disabling tracing due to warning\n"); + tracer_tracing_off(tr); + } } } =20 --=20 2.51.0