From: Ingo Molnar <mingo@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
linux-arch@vger.kernel.org
Subject: [PATCH 00/15] Implement CONFIG_DEBUG_BUGVERBOSE_DETAILED=y, to improve WARN_ON_ONCE() output by adding the condition string
Date: Thu, 15 May 2025 14:46:29 +0200 [thread overview]
Message-ID: <20250515124644.2958810-1-mingo@kernel.org> (raw)
Changes in -v2:
- Incorporated review feedback:
- Make the expanded strings conditional on the new
CONFIG_DEBUG_BUGVERBOSE_DETAILED=y switch, to address concerns
about the +100K kernel size increase, disabled by default.
- Expanded the Cc: fields
- Rebased to v6.15-rc6
This tree can also be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git WIP.core/bugs
Thanks,
Ingo
=========================>
Original -v1 announcement:
This series improves the current WARN_ON_ONCE() output, if
the new CONFIG_DEBUG_BUGVERBOSE_DETAILED=y option is enabled,
from:
WARN_ON_ONCE(idx < 0 && ptr);
...
WARNING: CPU: 0 PID: 0 at kernel/sched/core.c:8511 sched_init+0x20/0x410
to (on all __WARN_FLAGS() using architectures except S390):
WARNING: [idx < 0 && ptr] kernel/sched/core.c:8511 at sched_init+0x20/0x410 CPU#0: swapper/0
(Note the addition of the '[condition string]', and a reorganized CPU/comm/PID trailer.)
... and on S390 and non-__WARN_FLAGS architectures to:
WARNING: kernel/sched/core.c:8511 at sched_init+0x20/0x410 CPU#0: swapper/0
and on non-x86 architectures (the CPU/PID fields in the WARNING line are skipped):
WARNING: kernel/sched/core.c:8511 sched_init+0x20/0x410
CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.14.0-01616-g94d7af2844aa #4 PREEMPT(undef)
The motivation behind this series is the SCHED_WARN_ON() primitive that
got removed in the v6.14 merge window:
f7d2728cc032 ("sched/debug: Change SCHED_WARN_ON() to WARN_ON_ONCE()")
... which produced more informative debug output, as it included the
WARN_ON_ONCE() condition string - at the expense of worse code generation.
This series, based on Linus's latest Git tree, merges the code generation
benefits of modern WARN_ON_ONCE() bug_entry architecture code with the expanded
information content of SCHED_WARN_ON().
The cost is about +100K more .data on a defconfig kernel, and no runtime
code generation impact:
text data bss dec hex filename
29523998 7926322 1389904 38840224 250a7a0 vmlinux.x86.defconfig.before
29523998 8024626 1389904 38938528 25227a0 vmlinue.x86.defconfig.after
On !CONFIG_DEBUG_BUGVERBOSE_DETAILED there's no size difference.
The series was build and boot tested on x86, with an expectation for it to
work on other architectures (with no testing at the moment to back up that
expectation).
Ingo
================>
Ingo Molnar (15):
bugs/core: Extend __WARN_FLAGS() with the 'cond_str' parameter
bugs/core: Pass down the condition string of WARN_ON_ONCE(cond) warnings to __WARN_FLAGS()
bugs/core: Introduce the CONFIG_DEBUG_BUGVERBOSE_DETAILED Kconfig switch
bugs/x86: Extend _BUG_FLAGS() with the 'cond_str' parameter
bugs/x86: Augment warnings output by concatenating 'cond_str' with the regular __FILE__ string in _BUG_FLAGS()
bugs/powerpc: Pass in 'cond_str' to BUG_ENTRY()
bugs/powerpc: Concatenate 'cond_str' with '__FILE__' in BUG_ENTRY(), to extend WARN_ON/BUG_ON output
bugs/LoongArch: Pass in 'cond_str' to __BUG_ENTRY()
bugs/LoongArch: Concatenate 'cond_str' with '__FILE__' in __BUG_ENTRY(), to extend WARN_ON/BUG_ON output
bugs/s390: Pass in 'cond_str' to __EMIT_BUG()
bugs/riscv: Pass in 'cond_str' to __BUG_FLAGS()
bugs/riscv: Concatenate 'cond_str' with '__FILE__' in __BUG_FLAGS(), to extend WARN_ON/BUG_ON output
bugs/parisc: Concatenate 'cond_str' with '__FILE__' in __WARN_FLAGS(), to extend WARN_ON/BUG_ON output
bugs/sh: Concatenate 'cond_str' with '__FILE__' in __WARN_FLAGS(), to extend WARN_ON/BUG_ON output
bugs/core: Reorganize fields in the first line of WARNING output, add ->comm[] output
arch/arm64/include/asm/bug.h | 2 +-
arch/loongarch/include/asm/bug.h | 25 ++++++++++++-------------
arch/parisc/include/asm/bug.h | 6 +++---
arch/powerpc/include/asm/bug.h | 12 ++++++------
arch/riscv/include/asm/bug.h | 10 +++++-----
arch/s390/include/asm/bug.h | 10 +++++-----
arch/sh/include/asm/bug.h | 4 ++--
arch/x86/include/asm/bug.h | 14 +++++++-------
include/asm-generic/bug.h | 13 ++++++++++---
kernel/panic.c | 16 +++++++++-------
lib/Kconfig.debug | 10 ++++++++++
11 files changed, 70 insertions(+), 52 deletions(-)
--
2.45.2
next reply other threads:[~2025-05-15 12:46 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-15 12:46 Ingo Molnar [this message]
2025-05-15 12:46 ` [PATCH 01/15] bugs/core: Extend __WARN_FLAGS() with the 'cond_str' parameter Ingo Molnar
2025-05-15 12:46 ` [PATCH 02/15] bugs/core: Pass down the condition string of WARN_ON_ONCE(cond) warnings to __WARN_FLAGS() Ingo Molnar
2025-05-15 12:46 ` [PATCH 03/15] bugs/core: Introduce the CONFIG_DEBUG_BUGVERBOSE_DETAILED Kconfig switch Ingo Molnar
2025-05-15 12:46 ` [PATCH 04/15] bugs/x86: Extend _BUG_FLAGS() with the 'cond_str' parameter Ingo Molnar
2025-05-15 12:46 ` [PATCH 05/15] bugs/x86: Augment warnings output by concatenating 'cond_str' with the regular __FILE__ string in _BUG_FLAGS() Ingo Molnar
2025-05-15 12:46 ` [PATCH 06/15] bugs/powerpc: Pass in 'cond_str' to BUG_ENTRY() Ingo Molnar
2025-05-15 12:46 ` [PATCH 07/15] bugs/powerpc: Concatenate 'cond_str' with '__FILE__' in BUG_ENTRY(), to extend WARN_ON/BUG_ON output Ingo Molnar
2025-05-15 12:46 ` [PATCH 08/15] bugs/LoongArch: Pass in 'cond_str' to __BUG_ENTRY() Ingo Molnar
2025-05-15 12:46 ` [PATCH 09/15] bugs/LoongArch: Concatenate 'cond_str' with '__FILE__' in __BUG_ENTRY(), to extend WARN_ON/BUG_ON output Ingo Molnar
2025-05-15 12:46 ` [PATCH 10/15] bugs/s390: Pass in 'cond_str' to __EMIT_BUG() Ingo Molnar
2025-05-20 13:39 ` Heiko Carstens
2025-06-09 8:27 ` [PATCH 16/15] bugs/s390: Use " Ingo Molnar
2025-06-09 15:56 ` Heiko Carstens
2025-05-15 12:46 ` [PATCH 11/15] bugs/riscv: Pass in 'cond_str' to __BUG_FLAGS() Ingo Molnar
2025-05-15 12:46 ` [PATCH 12/15] bugs/riscv: Concatenate 'cond_str' with '__FILE__' in __BUG_FLAGS(), to extend WARN_ON/BUG_ON output Ingo Molnar
2025-05-16 15:09 ` Alexandre Ghiti
2025-05-16 15:45 ` Ingo Molnar
2025-05-15 12:46 ` [PATCH 13/15] bugs/parisc: Concatenate 'cond_str' with '__FILE__' in __WARN_FLAGS(), " Ingo Molnar
2025-05-15 15:28 ` Helge Deller
2025-05-15 15:31 ` Ingo Molnar
2025-05-15 12:46 ` [PATCH 14/15] bugs/sh: " Ingo Molnar
2025-05-15 12:56 ` John Paul Adrian Glaubitz
2025-05-15 13:33 ` Ingo Molnar
2025-05-15 13:35 ` John Paul Adrian Glaubitz
2025-05-15 13:43 ` Ingo Molnar
2025-05-15 12:46 ` [PATCH 15/15] bugs/core: Reorganize fields in the first line of WARNING output, add ->comm[] output Ingo Molnar
2025-05-22 20:39 ` [PATCH 00/15] Implement CONFIG_DEBUG_BUGVERBOSE_DETAILED=y, to improve WARN_ON_ONCE() output by adding the condition string David Laight
2025-06-09 7:52 ` Ingo Molnar
2025-06-09 11:13 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250515124644.2958810-1-mingo@kernel.org \
--to=mingo@kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).