From: Nathan Lynch via B4 Relay <devnull+nathanl.linux.ibm.com@kernel.org>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
"Naveen N. Rao" <naveen.n.rao@linux.ibm.com>,
Brian King <brking@linux.ibm.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
John Ogness <john.ogness@linutronix.de>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Petr Mladek <pmladek@suse.com>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>
Cc: Nathan Lynch <nathanl@linux.ibm.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: [PATCH RFC 0/5] dump_stack: Allow runtime updates of the hardware description
Date: Thu, 18 Jan 2024 09:25:11 -0600 [thread overview]
Message-ID: <20240118-update-dump-stack-arch-str-v1-0-5c0f98d017b5@linux.ibm.com> (raw)
When the kernel emits a stack trace, typically it includes a hardware
description string, e.g.
Kernel panic - not syncing: sysrq triggered crash
CPU: 6 PID: 46433 Comm: bash Tainted: G W 6.7.0-rc2+ #83
> Hardware name: IBM,9040-MR9 POWER9 (architected) 0x4e2102 0xf000005 of:IBM,FW950.01 (VM950_047) hv:phyp pSeries
Call Trace:
dump_stack_lvl+0xc4/0x170 (unreliable)
panic+0x39c/0x584
sysrq_handle_crash+0x80/0xe0
__handle_sysrq+0x208/0x4bc
[...]
This string is a statically allocated buffer populated during boot by
arch code calling dump_stack_set_arch_desc(). For most platforms this
is sufficient.
But the string may become inaccurate on the IBM PowerVM platform due
to live migration between machine models and firmware versions. Stack
dumps emitted after a migration reflect the machine on which the
kernel booted, not necessarily the machine on which it is currently
running. This is potentially confusing for anyone investigating
kernel issues on the platform.
To address this, this series introduces a new function that safely
updates the hardware description string and updates the powerpc
pseries platform code to call it after a migration. The series also
includes changes addressing minor latent issues identified during the
implementation.
Platforms which do not need the new functionality remain unchanged.
For this initial version at least, the powerpc/pseries part includes
some "self-test" code that 1. verifies that reconstructing the
hardware description string late in boot matches the one that was
built earlier, and 2. fully exercises the update path before any
migrations occur. This could be dropped or made configurable in the
future.
Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
---
Nathan Lynch (5):
dump_stack: Make arch description buffer __ro_after_init
dump_stack: Allow update of arch description string at runtime
powerpc/prom: Add CPU info to hardware description string later
powerpc/pseries: Prepare pseries_add_hw_description() for runtime use
powerpc/pseries: Update hardware description string after migration
arch/powerpc/kernel/prom.c | 12 +++--
arch/powerpc/platforms/pseries/mobility.c | 5 ++
arch/powerpc/platforms/pseries/pseries.h | 1 +
arch/powerpc/platforms/pseries/setup.c | 80 +++++++++++++++++++++++++++++--
include/linux/printk.h | 5 ++
lib/dump_stack.c | 57 ++++++++++++++++++++--
6 files changed, 146 insertions(+), 14 deletions(-)
---
base-commit: 44a1aad2fe6c10bfe0589d8047057b10a4c18a19
change-id: 20240111-update-dump-stack-arch-str-7f0880d23f30
Best regards,
--
Nathan Lynch <nathanl@linux.ibm.com>
next reply other threads:[~2024-01-18 15:30 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-18 15:25 Nathan Lynch via B4 Relay [this message]
2024-01-18 15:25 ` [PATCH RFC 1/5] dump_stack: Make arch description buffer __ro_after_init Nathan Lynch via B4 Relay
2024-01-18 15:25 ` [PATCH RFC 2/5] dump_stack: Allow update of arch description string at runtime Nathan Lynch via B4 Relay
2024-01-18 15:25 ` [PATCH RFC 3/5] powerpc/prom: Add CPU info to hardware description string later Nathan Lynch via B4 Relay
2024-01-18 15:25 ` [PATCH RFC 4/5] powerpc/pseries: Prepare pseries_add_hw_description() for runtime use Nathan Lynch via B4 Relay
2024-01-18 15:25 ` [PATCH RFC 5/5] powerpc/pseries: Update hardware description string after migration Nathan Lynch via B4 Relay
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=20240118-update-dump-stack-arch-str-v1-0-5c0f98d017b5@linux.ibm.com \
--to=devnull+nathanl.linux.ibm.com@kernel.org \
--cc=aneesh.kumar@linux.ibm.com \
--cc=brking@linux.ibm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=nathanl@linux.ibm.com \
--cc=naveen.n.rao@linux.ibm.com \
--cc=npiggin@gmail.com \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.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).