[PATCH v2] ppc/fadump: invoke kmsg_dump in fadump panic path
Sourabh Jain
sourabhjain at linux.ibm.com
Mon Apr 13 15:22:44 AEST 2026
On 12/04/26 17:00, Shivang Upadhyay wrote:
> fadump is registered in panic_notifier_list and gets triggered before
> kmsg_dump_desc() in the panic path. As a result, kmsg_dumpers such as
> pstore are not executed during fadump crashes.
>
> This is problematic because pstore provides a critical fallback mechanism
> for crash analysis. When fadump fails to successfully reboot the system
> or capture a dump, pstore logs may be the only available information from
> the crashed kernel. Without invoking kmsg_dump_desc() in the fadump path,
> we lose this valuable diagnostic data.
>
> Invoke kmsg_dump_desc() from the fadump panic handler, but only when
> fadump is actually registered (checked via should_fadump_crash()). This
> ensures kmsg_dumpers are called without duplicating the call that occurs
> later in panic() when fadump is not active.
>
> The call is placed before crash_fadump() to ensure logs are captured
> before the system attempts to trigger the firmware-assisted dump.
>
> Cc: Hari Bathini <hbathini at linux.ibm.com>
> Cc: Madhavan Srinivasan <maddy at linux.ibm.com>
> Cc: Mahesh Salgaonkar <mahesh at linux.ibm.com>
> Cc: Michael Ellerman <mpe at ellerman.id.au>
> Cc: Ritesh Harjani (IBM) <ritesh.list at gmail.com>
> Reported-by: Shirisha G <shirisha at linux.ibm.com>
> Suggested-by: Sourabh Jain <sourabhjain at linux.ibm.com>
> Signed-off-by: Shivang Upadhyay <shivangu at linux.ibm.com>
> ---
> Changelog:
>
> v2:
> address comments from Sourabh, and sashikio-ai
> added should_fadump_crash()
>
> v1:
> https://lore.kernel.org/all/20260407054341.308710-1-shivangu@linux.ibm.com/
> ---
> arch/powerpc/kernel/setup-common.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
> index b1761909c23f..87afc8003a03 100644
> --- a/arch/powerpc/kernel/setup-common.c
> +++ b/arch/powerpc/kernel/setup-common.c
> @@ -68,6 +68,7 @@
> #include <asm/kasan.h>
> #include <asm/mce.h>
> #include <asm/systemcfg.h>
> +#include <linux/kmsg_dump.h>
>
> #include "setup.h"
>
> @@ -744,6 +745,13 @@ static int ppc_panic_fadump_handler(struct notifier_block *this,
> */
> hard_irq_disable();
>
> + /*
> + * Invoke kmsg_dump (e.g., pstore) before crash_fadump() as fadump
> + * runs before panic()'s kmsg_dump_desc() call.
> + */
> + if (should_fadump_crash())
> + kmsg_dump_desc(KMSG_DUMP_PANIC, (char *)ptr);
> +
> /*
> * If firmware-assisted dump has been registered then trigger
> * its callback and let the firmware handles everything else.
Changes look good to me.
Feel free to add:
Reviewed-by: Sourabh Jain <sourabhjain at linux.ibm.com>
- Sourabh Jain
More information about the Linuxppc-dev
mailing list