public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ppc/fadump: invoke kmsg_dump in fadump panic path
@ 2026-04-07  5:43 Shivang Upadhyay
  2026-04-07 15:30 ` Sourabh Jain
  0 siblings, 1 reply; 3+ messages in thread
From: Shivang Upadhyay @ 2026-04-07  5:43 UTC (permalink / raw)
  To: linuxppc-dev, linux-kernel
  Cc: maddy, mpe, npiggin, chleroy, kees, tony.luck, gpiccoli,
	ritesh.list, rppt, Shivang Upadhyay, Hari Bathini,
	Mahesh Salgaonkar, Shirisha G, Sourabh Jain

fadump is registered in panic_notifier_list and gets triggered
before kmsg_dump_desc() in the panic path. As a result,
kmsg_dumpers (e.g. pstore) are not executed.

Invoke kmsg_dump_desc() from the fadump handler to ensure
kmsg_dumpers are called during panic.

Cc: Hari Bathini <hbathini@linux.ibm.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Mahesh Salgaonkar <mahesh@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Reported-by: Shirisha G <shirisha@linux.ibm.com>
Suggested-by: Sourabh Jain <sourabhjain@linux.ibm.com>
Signed-off-by: Shivang Upadhyay <shivangu@linux.ibm.com>
---
 arch/powerpc/kernel/setup-common.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index b1761909c23f..c329b071643d 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"
 
@@ -748,6 +749,8 @@ static int ppc_panic_fadump_handler(struct notifier_block *this,
 	 * If firmware-assisted dump has been registered then trigger
 	 * its callback and let the firmware handles everything else.
 	 */
+	kmsg_dump_desc(KMSG_DUMP_PANIC, (char *)ptr);
+
 	crash_fadump(NULL, ptr);
 
 	return NOTIFY_DONE;
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ppc/fadump: invoke kmsg_dump in fadump panic path
  2026-04-07  5:43 [PATCH] ppc/fadump: invoke kmsg_dump in fadump panic path Shivang Upadhyay
@ 2026-04-07 15:30 ` Sourabh Jain
  2026-04-09  9:14   ` Shivang Upadhyay
  0 siblings, 1 reply; 3+ messages in thread
From: Sourabh Jain @ 2026-04-07 15:30 UTC (permalink / raw)
  To: Shivang Upadhyay, linuxppc-dev, linux-kernel
  Cc: maddy, mpe, npiggin, chleroy, kees, tony.luck, gpiccoli,
	ritesh.list, rppt, Hari Bathini, Mahesh Salgaonkar, Shirisha G

Hello Shivang,

On 07/04/26 11:13, 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 (e.g. pstore) are not executed.

Can you emphasize why it is important to call kmsg_dump_desc()?
Because fadump captures the full memory dump anyway.


> Invoke kmsg_dump_desc() from the fadump handler to ensure
> kmsg_dumpers are called during panic.

Can you please add some command output from before and after
this patch series? It will make it easier to understand the impact of
the changes introduced.


>
> Cc: Hari Bathini <hbathini@linux.ibm.com>
> Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
> Cc: Mahesh Salgaonkar <mahesh@linux.ibm.com>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> Reported-by: Shirisha G <shirisha@linux.ibm.com>
> Suggested-by: Sourabh Jain <sourabhjain@linux.ibm.com>
> Signed-off-by: Shivang Upadhyay <shivangu@linux.ibm.com>
> ---
>   arch/powerpc/kernel/setup-common.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
> index b1761909c23f..c329b071643d 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"
>   
> @@ -748,6 +749,8 @@ static int ppc_panic_fadump_handler(struct notifier_block *this,
>   	 * If firmware-assisted dump has been registered then trigger
>   	 * its callback and let the firmware handles everything else.
>   	 */
> +	kmsg_dump_desc(KMSG_DUMP_PANIC, (char *)ptr);

Can you move the kmsg_dump_desc() function before the comment?
The comment was for crash_fadump() function.

Yes, panic() passes the reason for the panic as a string via ptr. So it 
is good
to pass the same to the message dumpers.

As sashiko suggested:
https://sashiko.dev/#/patchset/20260407054341.308710-1-shivangu%40linux.ibm.com 


I think we should call kmsg_dump_desc() only when fadump is registered, 
to avoid calling
it multiple times. If fadump is not registered, this can be called twice 
in the panic path,
first here and then again in the vpanic() function. Checkout 
should_fadump_crash() function.

The second point from Sashiko is about introducing something like 
crash_kexec_post_notifiers
to give users the option to call message dumpers on the vpanic path, or 
on the other two
paths as well (system reset and die) when fadump is configured.

I think this is not really needed because there are already existing 
crash paths hitting crash_fadump
(system reset and die) on which kmsg_dump_desc() is called directly.

> +
>   	crash_fadump(NULL, ptr);
>

As of now, crash_fadump() (which initiates memory dump
collection) is called through three different paths:

1. System Reset
2. die/oops
3. panic

We call kmsg_dump() -> kmsg_dump_desc() to invoke all message
dumpers on the system reset and die/oops paths. The only
remaining path where kmsg_dump_desc() is not called is the
panic path.

panic() -> vpanic() -> panic notifier call chain -> crash_fadump()

I think it is good to fix this path as well. Thanks for the fix.

- Sourabh Jain

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ppc/fadump: invoke kmsg_dump in fadump panic path
  2026-04-07 15:30 ` Sourabh Jain
@ 2026-04-09  9:14   ` Shivang Upadhyay
  0 siblings, 0 replies; 3+ messages in thread
From: Shivang Upadhyay @ 2026-04-09  9:14 UTC (permalink / raw)
  To: Sourabh Jain, linuxppc-dev, linux-kernel
  Cc: maddy, mpe, npiggin, chleroy, kees, tony.luck, gpiccoli,
	ritesh.list, rppt, Hari Bathini, Mahesh Salgaonkar, Shirisha G

Hi Sourabh,

On Tue, 2026-04-07 at 21:00 +0530, Sourabh Jain wrote:
> Hello Shivang,
> 
> On 07/04/26 11:13, 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 (e.g. pstore) are not executed.
> 
> Can you emphasize why it is important to call kmsg_dump_desc()?
> Because fadump captures the full memory dump anyway.
> 

Sure. So pstore kmsg_dump can be useful in the cases where we fail to
reboot system with kdump/fadump. Because pstore kmsg dump is collected
during the crashing kernel, it can be *only* information that we
collect from that system.

> 
> > Invoke kmsg_dump_desc() from the fadump handler to ensure
> > kmsg_dumpers are called during panic.
> 
> Can you please add some command output from before and after
> this patch series? It will make it easier to understand the impact of
> the changes 

To test for this case, we just made sure that pstore kmsg-dump file's
time stamp was getting updated or not. Currently in fadump's crash path
pstore isn't collecting any logs.

> 
> > 
> > Cc: Hari Bathini <hbathini@linux.ibm.com>
> > Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
> > Cc: Mahesh Salgaonkar <mahesh@linux.ibm.com>
> > Cc: Michael Ellerman <mpe@ellerman.id.au>
> > Cc: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> > Reported-by: Shirisha G <shirisha@linux.ibm.com>
> > Suggested-by: Sourabh Jain <sourabhjain@linux.ibm.com>
> > Signed-off-by: Shivang Upadhyay <shivangu@linux.ibm.com>
> > ---
> >   arch/powerpc/kernel/setup-common.c | 3 +++
> >   1 file changed, 3 insertions(+)
> > 
> > diff --git a/arch/powerpc/kernel/setup-common.c
> > b/arch/powerpc/kernel/setup-common.c
> > index b1761909c23f..c329b071643d 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"
> >   
> > @@ -748,6 +749,8 @@ static int ppc_panic_fadump_handler(struct
> > notifier_block *this,
> >   	 * If firmware-assisted dump has been registered then
> > trigger
> >   	 * its callback and let the firmware handles everything
> > else.
> >   	 */
> > +	kmsg_dump_desc(KMSG_DUMP_PANIC, (char *)ptr);
> 
> Can you move the kmsg_dump_desc() function before the comment?
> The comment was for crash_fadump() function.
> 
Ack.
> Yes, panic() passes the reason for the panic as a string via ptr. So
> it 
> is good
> to pass the same to the message dumpers.
> 
> As sashiko suggested:
> https://sashiko.dev/#/patchset/20260407054341.308710-1-shivangu%40linux.ibm.com
>  
> 
> 
> I think we should call kmsg_dump_desc() only when fadump is
> registered, 
> to avoid calling
> it multiple times. If fadump is not registered, this can be called
> twice 
> in the panic path,
> first here and then again in the vpanic() function. Checkout 
> should_fadump_crash() function.
> 

Sure, ill find a new place to call this.

> The second point from Sashiko is about introducing something like 
> crash_kexec_post_notifiers
> to give users the option to call message dumpers on the vpanic path,
> or 
> on the other two
> paths as well (system reset and die) when fadump is configured.
> 
> I think this is not really needed because there are already existing 
> crash paths hitting crash_fadump
> (system reset and die) on which kmsg_dump_desc() is called directly.
> 
> > +
> >   	crash_fadump(NULL, ptr);
> > 
> 
> As of now, crash_fadump() (which initiates memory dump
> collection) is called through three different paths:
> 
> 1. System Reset
> 2. die/oops
> 3. panic
> 
> We call kmsg_dump() -> kmsg_dump_desc() to invoke all message
> dumpers on the system reset and die/oops paths. The only
> remaining path where kmsg_dump_desc() is not called is the
> panic path.
> 
> panic() -> vpanic() -> panic notifier call chain -> crash_fadump()
> 

Yeah, the other paths should be covered by this line in crash path here
[1].

> I think it is good to fix this path as well. Thanks for the fix.
> 
> - Sourabh Jain


Thanks,
~Shivang.

[1] http://elixir.bootlin.com/linux/v6.15.6/source/kernel/panic.c#L387

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-04-09  9:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07  5:43 [PATCH] ppc/fadump: invoke kmsg_dump in fadump panic path Shivang Upadhyay
2026-04-07 15:30 ` Sourabh Jain
2026-04-09  9:14   ` Shivang Upadhyay

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox