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>,
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 Baechle <ralf@linux-mips.org>,
Paul Mackerras <paulus@samba.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-ia64@vger.kernel.org,
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
James Hogan <jhogan@kernel.org>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
Max Filippov <jcmvbkbc@gmail.com>,
Vincent Chen <deanbo422@gmail.com>,
Ingo Molnar <mingo@kernel.org>,
linux-s390@vger.kernel.org, linux-c6x-dev@linux-c6x.org,
Yoshinori Sato <ysato@users.sourceforge.jp>,
linux-hexagon@vger.kernel.org, Helge Deller <deller@gmx.de>,
linux-xtensa@linux-xtensa.org, Vasily Gorbik <gor@linux.ibm.com>,
Aurelien Jacquiot <jacquiot.aurelien@gmail.com>,
linux-m68k@lists.linux-m68k.org,
Stafford Horne <shorne@gmail.com>,
linux-arm-kernel@lists.infradead.org,
Chris Zankel <chris@zankel.net>, Tony Luck <tony.luck@intel.com>,
Douglas Anderson <dianders@chromium.org>,
Dmitry Safonov <0x7f454c46@gmail.com>,
Will Deacon <will@kernel.org>,
Daniel Thompson <daniel.thompson@linaro.org>,
Brian Cain <bcain@codeaurora.org>,
Christian Borntraeger <borntraeger@de.ibm.com>,
kgdb-bugreport@lists.sourceforge.net,
linux-snps-arc@lists.infradead.org,
Fenghua Yu <fenghua.yu@intel.com>, Borislav Petkov <bp@alien8.de>,
Jeff Dike <jdike@addtoit.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
Greentime Hu <green.hu@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
linux-parisc@vger.kernel.org, linux-alpha@vger.kernel.org,
Ley Foon Tan <lftan@altera.com>,
"David S. Miller" <davem@davemloft.net>,
Rich Felker <dalias@libc.org>, Petr Mladek <pmladek@suse.com>,
Peter Zijlstra <peterz@infradead.org>,
"H. Peter Anvin" <hpa@zytor.com>,
sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org,
Anton Ivanov <anton.ivanov@cambridgegreys.com>,
Jonas Bonn <jonas@southpole.se>,
Richard Weinberger <richard@nod.at>,
x86@kernel.org, Russell King <linux@armlinux.org.uk>,
clang-built-linux@googlegroups.com,
Ingo Molnar <mingo@redhat.com>, Mark Salter <msalter@redhat.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
openrisc@lists.librecores.org,
Paul Walmsley <paul.walmsley@sifive.com>,
Michal Simek <monstr@monstr.eu>,
Vineet Gupta <vgupta@synopsys.com>,
linux-mips@vger.kernel.org,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Jason Wessel <jason.wessel@windriver.com>,
nios2-dev@lists.rocketboards.org, linuxppc-dev@lists.ozlabs.org
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:39 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-06 3:04 Dmitry Safonov [this message]
2019-11-06 3:05 ` [PATCH 26/50] powerpc: Add show_stack_loglvl() Dmitry Safonov
2019-11-06 9:52 ` Michael Ellerman
2019-11-06 16:01 ` 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=0x7f454c46@gmail.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=akpm@linux-foundation.org \
--cc=anton.ivanov@cambridgegreys.com \
--cc=aou@eecs.berkeley.edu \
--cc=bcain@codeaurora.org \
--cc=borntraeger@de.ibm.com \
--cc=bp@alien8.de \
--cc=bsegall@google.com \
--cc=catalin.marinas@arm.com \
--cc=chris@zankel.net \
--cc=clang-built-linux@googlegroups.com \
--cc=dalias@libc.org \
--cc=daniel.thompson@linaro.org \
--cc=davem@davemloft.net \
--cc=deanbo422@gmail.com \
--cc=deller@gmx.de \
--cc=dianders@chromium.org \
--cc=dietmar.eggemann@arm.com \
--cc=fenghua.yu@intel.com \
--cc=geert@linux-m68k.org \
--cc=gor@linux.ibm.com \
--cc=green.hu@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=guoren@kernel.org \
--cc=gxt@pku.edu.cn \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=ink@jurassic.park.msu.ru \
--cc=jacquiot.aurelien@gmail.com \
--cc=jason.wessel@windriver.com \
--cc=jcmvbkbc@gmail.com \
--cc=jdike@addtoit.com \
--cc=jhogan@kernel.org \
--cc=jonas@southpole.se \
--cc=jslaby@suse.com \
--cc=juri.lelli@redhat.com \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=len.brown@intel.com \
--cc=lftan@altera.com \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-c6x-dev@linux-c6x.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=linux-um@lists.infradead.org \
--cc=linux-xtensa@linux-xtensa.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mattst88@gmail.com \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=monstr@monstr.eu \
--cc=msalter@redhat.com \
--cc=nios2-dev@lists.rocketboards.org \
--cc=openrisc@lists.librecores.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=paulburton@kernel.org \
--cc=paulus@samba.org \
--cc=pavel@ucw.cz \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=ralf@linux-mips.org \
--cc=richard@nod.at \
--cc=rjw@rjwysocki.net \
--cc=rostedt@goodmis.org \
--cc=rth@twiddle.net \
--cc=sergey.senozhatsky@gmail.com \
--cc=shorne@gmail.com \
--cc=sparclinux@vger.kernel.org \
--cc=stefan.kristiansson@saunalahti.fi \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=uclinux-h8-devel@lists.sourceforge.jp \
--cc=vgupta@synopsys.com \
--cc=vincent.guittot@linaro.org \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=ysato@users.sourceforge.jp \
/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).