From: Dmitry Safonov <dima@arista.com>
To: linux-kernel@vger.kernel.org
Cc: Juri Lelli <juri.lelli@redhat.com>,
linux-sh@vger.kernel.org,
Catalin Marinas <catalin.marinas@arm.com>,
Ben Segall <bsegall@google.com>, Guo Ren <guoren@kernel.org>,
Pavel Machek <pavel@ucw.cz>,
Vincent Guittot <vincent.guittot@linaro.org>,
Paul Burton <paulburton@kernel.org>,
Dmitry Safonov <dima@arista.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Mel Gorman <mgorman@suse.de>, Jiri Slaby <jslaby@suse.com>,
Matt Turner <mattst88@gmail.com>,
uclinux-h8-devel@lists.sourceforge.jp,
Len Brown <len.brown@intel.com>,
linux-pm@vger.kernel.org,
Heiko Carstens <heiko.carstens@de.ibm.com>,
linux-um@lists.infradead.org,
Thomas Gleixner <tglx@linutronix.de>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Richard Henderson <rth@twiddle.net>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Ralf
Subject: [PATCH 00/50] Add log level to show_stack()
Date: Wed, 6 Nov 2019 03:04:51 +0000 [thread overview]
Message-ID: <20191106030542.868541-1-dima@arista.com> (raw)
Add log level argument to show_stack().
Done in three stages:
1. Introducing show_stack_loglvl() for every architecture
2. Migrating old users with an explicit log level
3. Renaming show_stack_loglvl() into show_stack()
Justification:
o It's a design mistake to move a business-logic decision
into platform realization detail.
o I have currently two patches sets that would benefit from this work:
Removing console_loglevel jumps in sysrq driver [1]
Hung task warning before panic [2] - suggested by Tetsuo (but he
probably didn't realise what it would involve).
o While doing (1), (2) the backtraces were adjusted to headers
and other messages for each situation - so there won't be a situation
when the backtrace is printed, but the headers are missing because
they have lesser log level (or the reverse).
o As the result in (2) plays with console_loglevel for kdb are removed.
The least important for upstream, but maybe still worth to note that
every company I've worked in so far had an off-list patch to print
backtrace with the needed log level (but only for the architecture they
cared about).
If you have other ideas how you will benefit from show_stack() with
a log level - please, reply to this cover letter.
Ok, to the scary part: I've tested it on x86_64 and build tested on a
couple of architectures. Though, I can't cover all platforms so
I hope I'll have a couple of reports and than it'll soak in linux-next
for some time. In my opinion the variety of architectures shouldn't
stop general improvements.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Thanks,
Dmitry
[1]: https://lore.kernel.org/lkml/20190528002412.1625-1-dima@arista.com/T/#u
[2]: https://lkml.kernel.org/r/41fd7652-df1f-26f6-aba0-b87ebae07db6@i-love.sakura.ne.jp
Dmitry Safonov (50):
kallsyms/printk: Add loglvl to print_ip_sym()
alpha: Add show_stack_loglvl()
arc: Add show_stack_loglvl()
arm/asm: Add loglvl to c_backtrace()
arm: Add loglvl to unwind_backtrace()
arm: Add loglvl to dump_backtrace()
arm: Wire up dump_backtrace_{entry,stm}
arm: Add show_stack_loglvl()
arm64: Add loglvl to dump_backtrace()
arm64: Add show_stack_loglvl()
c6x: Add show_stack_loglvl()
csky: Add show_stack_loglvl()
h8300: Add show_stack_loglvl()
hexagon: Add show_stack_loglvl()
ia64: Pass log level as arg into ia64_do_show_stack()
ia64: Add show_stack_loglvl()
m68k: Add show_stack_loglvl()
microblaze: Add loglvl to microblaze_unwind_inner()
microblaze: Add loglvl to microblaze_unwind()
microblaze: Add show_stack_loglvl()
mips: Add show_stack_loglvl()
nds32: Add show_stack_loglvl()
nios2: Add show_stack_loglvl()
openrisc: Add show_stack_loglvl()
parisc: Add show_stack_loglvl()
powerpc: Add show_stack_loglvl()
riscv: Add show_stack_loglvl()
s390: Add show_stack_loglvl()
sh: Add loglvl to dump_mem()
sh: Remove needless printk()
sh: Add loglvl to printk_address()
sh: Add loglvl to show_trace()
sh: Add show_stack_loglvl()
sparc: Add show_stack_loglvl()
um/sysrq: Remove needless variable sp
um: Add show_stack_loglvl()
unicore32: Remove unused pmode argument in c_backtrace()
unicore32: Add loglvl to c_backtrace()
unicore32: Add show_stack_loglvl()
x86: Add missing const qualifiers for log_lvl
x86: Add show_stack_loglvl()
xtensa: Add loglvl to show_trace()
xtensa: Add show_stack_loglvl()
sysrq: Use show_stack_loglvl()
x86/amd_gart: Print stacktrace for a leak with KERN_ERR
power: Use show_stack_loglvl()
kdb: Don't play with console_loglevel
sched: Print stack trace with KERN_INFO
kernel: Use show_stack_loglvl()
kernel: Rename show_stack_loglvl() => show_stack()
arch/alpha/kernel/traps.c | 22 +++++++--------
arch/arc/include/asm/bug.h | 3 ++-
arch/arc/kernel/stacktrace.c | 17 +++++++-----
arch/arc/kernel/troubleshoot.c | 2 +-
arch/arm/include/asm/bug.h | 3 ++-
arch/arm/include/asm/traps.h | 3 ++-
arch/arm/include/asm/unwind.h | 3 ++-
arch/arm/kernel/traps.c | 40 ++++++++++++++++------------
arch/arm/kernel/unwind.c | 7 ++---
arch/arm/lib/backtrace-clang.S | 9 +++++--
arch/arm/lib/backtrace.S | 14 +++++++---
arch/arm64/include/asm/stacktrace.h | 3 ++-
arch/arm64/kernel/process.c | 2 +-
arch/arm64/kernel/traps.c | 19 ++++++-------
arch/c6x/kernel/traps.c | 18 +++++++------
arch/csky/kernel/dumpstack.c | 9 ++++---
arch/csky/kernel/ptrace.c | 4 +--
arch/h8300/kernel/traps.c | 12 ++++-----
arch/hexagon/kernel/traps.c | 25 ++++++++---------
arch/ia64/include/asm/ptrace.h | 1 -
arch/ia64/kernel/mca.c | 2 +-
arch/ia64/kernel/process.c | 17 ++++++------
arch/m68k/kernel/traps.c | 13 ++++-----
arch/microblaze/include/asm/unwind.h | 3 ++-
arch/microblaze/kernel/stacktrace.c | 4 +--
arch/microblaze/kernel/traps.c | 12 ++++-----
arch/microblaze/kernel/unwind.c | 37 ++++++++++++++-----------
arch/mips/kernel/traps.c | 35 ++++++++++++------------
arch/nds32/kernel/traps.c | 15 ++++++-----
arch/nios2/kernel/traps.c | 17 ++++++------
arch/openrisc/kernel/traps.c | 12 +++++----
arch/parisc/kernel/traps.c | 24 ++++++++---------
arch/powerpc/kernel/process.c | 15 ++++++-----
arch/powerpc/kernel/stacktrace.c | 2 +-
arch/riscv/kernel/stacktrace.c | 9 ++++---
arch/s390/kernel/dumpstack.c | 11 ++++----
arch/sh/include/asm/kdebug.h | 6 +++--
arch/sh/include/asm/processor_32.h | 2 +-
arch/sh/kernel/dumpstack.c | 36 ++++++++++++-------------
arch/sh/kernel/process_32.c | 2 +-
arch/sh/kernel/process_64.c | 3 +--
arch/sh/kernel/traps.c | 4 +--
arch/sh/mm/fault.c | 2 +-
arch/sparc/kernel/process_32.c | 10 +++----
arch/sparc/kernel/process_64.c | 2 +-
arch/um/drivers/mconsole_kern.c | 2 +-
arch/um/kernel/sysrq.c | 23 ++++++++--------
arch/unicore32/kernel/setup.h | 2 +-
arch/unicore32/kernel/traps.c | 34 +++++++++++------------
arch/unicore32/lib/backtrace.S | 24 +++++++++++------
arch/x86/include/asm/stacktrace.h | 2 +-
arch/x86/kernel/amd_gart_64.c | 2 +-
arch/x86/kernel/dumpstack.c | 9 ++++---
arch/xtensa/kernel/traps.c | 26 ++++++++++--------
drivers/base/power/main.c | 2 +-
drivers/tty/sysrq.c | 2 +-
include/linux/kallsyms.h | 4 +--
include/linux/sched/debug.h | 3 ++-
kernel/debug/kdb/kdb_bt.c | 11 +++-----
kernel/locking/lockdep.c | 4 +--
kernel/locking/rtmutex-debug.c | 2 +-
kernel/sched/core.c | 6 ++---
kernel/trace/ftrace.c | 8 +++---
lib/dump_stack.c | 2 +-
64 files changed, 368 insertions(+), 311 deletions(-)
--
2.23.0
next reply other threads:[~2019-11-06 3:04 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-06 3:04 Dmitry Safonov [this message]
2019-11-06 3:04 ` [PATCH 02/50] alpha: Add show_stack_loglvl() Dmitry Safonov
2019-11-06 8:35 ` [PATCH 00/50] Add log level to show_stack() Petr Mladek
2019-11-06 16:12 ` Dmitry Safonov
2019-11-08 10:37 ` Sergey Senozhatsky
2019-11-08 13:04 ` Petr Mladek
2019-11-11 1:23 ` Sergey Senozhatsky
2019-11-11 9:12 ` Petr Mladek
2019-11-12 4:44 ` Sergey Senozhatsky
2019-11-12 4:57 ` Sergey Senozhatsky
2019-11-12 8:35 ` Petr Mladek
2019-11-12 10:12 ` Sergey Senozhatsky
2019-11-13 1:23 ` Sergey Senozhatsky
2019-11-13 2:25 ` Dmitry Safonov
2019-11-13 6:33 ` Sergey Senozhatsky
2019-11-13 8:47 ` Petr Mladek
2019-11-13 16:24 ` Steven Rostedt
2019-11-13 16:40 ` Dmitry Safonov
2019-11-15 0:50 ` Sergey Senozhatsky
2019-11-13 15:32 ` Steven Rostedt
2019-11-11 19:47 ` Dmitry Safonov
2019-11-12 2:17 ` Sergey Senozhatsky
2019-11-12 2:40 ` Dmitry Safonov
2019-11-12 4:25 ` Sergey Senozhatsky
2019-11-13 2:41 ` Dmitry Safonov
2019-11-13 2:51 ` Sergey Senozhatsky
2019-11-13 15:39 ` Steven Rostedt
2019-11-15 3:36 ` Sergey Senozhatsky
2019-11-06 9:20 ` Peter Zijlstra
2019-11-06 16:27 ` Dmitry Safonov
2019-11-06 20:34 ` Peter Zijlstra
2019-11-06 23:25 ` Russell King - ARM Linux admin
2019-11-13 15:44 ` Steven Rostedt
2019-11-08 16:28 ` Dmitry Safonov
2019-11-08 17:30 ` Russell King - ARM Linux admin
2019-11-08 21:08 ` Dmitry Safonov
2019-11-13 15:41 ` Steven Rostedt
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=20191106030542.868541-1-dima@arista.com \
--to=dima@arista.com \
--cc=bsegall@google.com \
--cc=catalin.marinas@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=guoren@kernel.org \
--cc=heiko.carstens@de.ibm.com \
--cc=jslaby@suse.com \
--cc=juri.lelli@redhat.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-um@lists.infradead.org \
--cc=mattst88@gmail.com \
--cc=mgorman@suse.de \
--cc=mpe@ellerman.id.au \
--cc=paulburton@kernel.org \
--cc=pavel@ucw.cz \
--cc=rjw@rjwysocki.net \
--cc=rth@twiddle.net \
--cc=tglx@linutronix.de \
--cc=uclinux-h8-devel@lists.sourceforge.jp \
--cc=vincent.guittot@linaro.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