Re: [PATCH] x86/dumpstack: uniform die messages

From: Alex Shi
Date: Wed Jan 03 2024 - 07:44:52 EST


On Tue, Jan 2, 2024 at 3:42 PM <alexs@xxxxxxxxxx> wrote:
>
> From: Alex Shi <alexs@xxxxxxxxxx>
>
> panic() has a uniform preempt, like "Kernel panic - not syncing:". But
> die() doesn't have.
>
> We died thousands machine with very different reasons. With current die
> messages in dmesg, it's hard to write scripts to collect and anaylis the
> die reasons. So we'd better give die() a uniform preempt to make the
> life of system administrators a bit easier.

Sorry for the typo, s/preempt/prompt/,
And any comments are appreciated!

>
> Signed-off-by: Alex Shi <alexs@xxxxxxxxxx>
> To: linux-kernel@xxxxxxxxxxxxxxx
> To: "H. Peter Anvin" <hpa@xxxxxxxxx>
> To: x86@xxxxxxxxxx
> To: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> To: Borislav Petkov <bp@xxxxxxxxx>
> To: Ingo Molnar <mingo@xxxxxxxxxx>
> To: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> To: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> To: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> ---
> arch/x86/kernel/dumpstack.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
> index f18ca44c904b..00766e7ac077 100644
> --- a/arch/x86/kernel/dumpstack.c
> +++ b/arch/x86/kernel/dumpstack.c
> @@ -393,6 +393,8 @@ void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
> }
> NOKPROBE_SYMBOL(oops_end);
>
> +#define DIE_PREEMPT "DIE:\n"
> +
> static void __die_header(const char *str, struct pt_regs *regs, long err)
> {
> const char *pr = "";
> @@ -405,8 +407,8 @@ static void __die_header(const char *str, struct pt_regs *regs, long err)
> pr = IS_ENABLED(CONFIG_PREEMPT_RT) ? " PREEMPT_RT" : " PREEMPT";
>
> printk(KERN_DEFAULT
> - "%s: %04lx [#%d]%s%s%s%s%s\n", str, err & 0xffff, ++die_counter,
> - pr,
> + DIE_PREEMPT "%s: %04lx [#%d]%s%s%s%s%s\n", str, err & 0xffff,
> + ++die_counter, pr,
> IS_ENABLED(CONFIG_SMP) ? " SMP" : "",
> debug_pagealloc_enabled() ? " DEBUG_PAGEALLOC" : "",
> IS_ENABLED(CONFIG_KASAN) ? " KASAN" : "",
> --
> 2.43.0
>