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$(echo .)com \
--cc=0x7f454c46@gmail$(echo .)com \
--cc=James.Bottomley@HansenPartnership$(echo .)com \
--cc=akpm@linux-foundation$(echo .)org \
--cc=anton.ivanov@cambridgegreys$(echo .)com \
--cc=aou@eecs$(echo .)berkeley.edu \
--cc=bcain@codeaurora$(echo .)org \
--cc=borntraeger@de$(echo .)ibm.com \
--cc=bp@alien8$(echo .)de \
--cc=bsegall@google$(echo .)com \
--cc=catalin.marinas@arm$(echo .)com \
--cc=chris@zankel$(echo .)net \
--cc=clang-built-linux@googlegroups$(echo .)com \
--cc=dalias@libc$(echo .)org \
--cc=daniel.thompson@linaro$(echo .)org \
--cc=davem@davemloft$(echo .)net \
--cc=deanbo422@gmail$(echo .)com \
--cc=deller@gmx$(echo .)de \
--cc=dianders@chromium$(echo .)org \
--cc=dietmar.eggemann@arm$(echo .)com \
--cc=fenghua.yu@intel$(echo .)com \
--cc=geert@linux-m68k$(echo .)org \
--cc=gor@linux$(echo .)ibm.com \
--cc=green.hu@gmail$(echo .)com \
--cc=gregkh@linuxfoundation$(echo .)org \
--cc=guoren@kernel$(echo .)org \
--cc=gxt@pku$(echo .)edu.cn \
--cc=heiko.carstens@de$(echo .)ibm.com \
--cc=hpa@zytor$(echo .)com \
--cc=ink@jurassic$(echo .)park.msu.ru \
--cc=jacquiot.aurelien@gmail$(echo .)com \
--cc=jason.wessel@windriver$(echo .)com \
--cc=jcmvbkbc@gmail$(echo .)com \
--cc=jdike@addtoit$(echo .)com \
--cc=jhogan@kernel$(echo .)org \
--cc=jonas@southpole$(echo .)se \
--cc=jslaby@suse$(echo .)com \
--cc=juri.lelli@redhat$(echo .)com \
--cc=kgdb-bugreport@lists$(echo .)sourceforge.net \
--cc=len.brown@intel$(echo .)com \
--cc=lftan@altera$(echo .)com \
--cc=linux-alpha@vger$(echo .)kernel.org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-c6x-dev@linux-c6x$(echo .)org \
--cc=linux-hexagon@vger$(echo .)kernel.org \
--cc=linux-ia64@vger$(echo .)kernel.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-m68k@lists$(echo .)linux-m68k.org \
--cc=linux-mips@vger$(echo .)kernel.org \
--cc=linux-parisc@vger$(echo .)kernel.org \
--cc=linux-pm@vger$(echo .)kernel.org \
--cc=linux-riscv@lists$(echo .)infradead.org \
--cc=linux-s390@vger$(echo .)kernel.org \
--cc=linux-sh@vger$(echo .)kernel.org \
--cc=linux-snps-arc@lists$(echo .)infradead.org \
--cc=linux-um@lists$(echo .)infradead.org \
--cc=linux-xtensa@linux-xtensa$(echo .)org \
--cc=linux@armlinux$(echo .)org.uk \
--cc=linuxppc-dev@lists$(echo .)ozlabs.org \
--cc=mattst88@gmail$(echo .)com \
--cc=mgorman@suse$(echo .)de \
--cc=mingo@kernel$(echo .)org \
--cc=mingo@redhat$(echo .)com \
--cc=monstr@monstr$(echo .)eu \
--cc=msalter@redhat$(echo .)com \
--cc=nios2-dev@lists$(echo .)rocketboards.org \
--cc=openrisc@lists$(echo .)librecores.org \
--cc=palmer@dabbelt$(echo .)com \
--cc=paul.walmsley@sifive$(echo .)com \
--cc=paulburton@kernel$(echo .)org \
--cc=paulus@samba$(echo .)org \
--cc=pavel@ucw$(echo .)cz \
--cc=penguin-kernel@I-love$(echo .)SAKURA.ne.jp \
--cc=peterz@infradead$(echo .)org \
--cc=pmladek@suse$(echo .)com \
--cc=ralf@linux-mips$(echo .)org \
--cc=richard@nod$(echo .)at \
--cc=rjw@rjwysocki$(echo .)net \
--cc=rostedt@goodmis$(echo .)org \
--cc=rth@twiddle$(echo .)net \
--cc=sergey.senozhatsky@gmail$(echo .)com \
--cc=shorne@gmail$(echo .)com \
--cc=sparclinux@vger$(echo .)kernel.org \
--cc=stefan.kristiansson@saunalahti$(echo .)fi \
--cc=tglx@linutronix$(echo .)de \
--cc=tony.luck@intel$(echo .)com \
--cc=uclinux-h8-devel@lists$(echo .)sourceforge.jp \
--cc=vgupta@synopsys$(echo .)com \
--cc=vincent.guittot@linaro$(echo .)org \
--cc=will@kernel$(echo .)org \
--cc=x86@kernel$(echo .)org \
--cc=ysato@users$(echo .)sourceforge.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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