* [PATCH 0/1] powerpc/crash: protect kdump from active watchdogs
@ 2026-06-03 7:02 Sourabh Jain
2026-06-03 7:02 ` [PATCH 1/1] powerpc/crash: stop watchdogs before booting kdump kernel Sourabh Jain
0 siblings, 1 reply; 5+ messages in thread
From: Sourabh Jain @ 2026-06-03 7:02 UTC (permalink / raw)
To: linuxppc-dev, maddy, mpe
Cc: npiggin, chleroy, ritesh.list, shivangu, hbathini, mahesh,
adityag, venkat88, sourabhjain, stable
On pseries LPAR systems in a high-availability environment using the
SBD[1][2] service, I observed that the system abruptly rebooted before
dump capture could complete.
Further investigation showed that SBD had configured a watchdog with
a 30-second timeout. Since the kernel crashes directly into the
kdump kernel without shutting down userspace services, the watchdog
remained active during dump capture. Once the watchdog timeout
expired, PHYP reset the LPAR, causing dump capture to fail.
The issue was reproducible only when the watchdog was active. Dump
capture completed successfully after disabling the watchdog,
stopping the SBD service, or increasing the watchdog timeout value.
This patch fixes the issue by stopping all active watchdogs on the
crash shutdown path before booting the kdump kernel.
Driver that export the hardware watchdog device is:
drivers/watchdog/pseries-wdt.c
[1] https://github.com/clusterlabs/sbd/blob/main/man/sbd.8.pod.in
[2] https://documentation.suse.com/sle-ha/15-SP4/html/SLE-HA-all/cha-ha-storage-protect.html
This issue can be reproduce using below program:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <linux/watchdog.h>
#define WATCHDOG_DEV "/dev/watchdog"
#define TIMEOUT 10
#define PET_INTERVAL 1
static int wdt_fd = -1;
static void watchdog_close(int disarm)
{
int flags;
if (wdt_fd < 0)
return;
if (disarm) {
flags = WDIOS_DISABLECARD;
if (ioctl(wdt_fd, WDIOC_SETOPTIONS, &flags) < 0)
printf("WDIOS_DISABLECARD failed: %m (nowayout may be set)\n");
else
printf("Watchdog disabled via WDIOS_DISABLECARD\n");
if (write(wdt_fd, "V", 1) < 0)
printf("Magic 'V' write failed: %m\n");
else
printf("Magic 'V' written\n");
} else {
printf("Closing WITHOUT disarming - watchdog keeps running!\n");
}
close(wdt_fd);
wdt_fd = -1;
printf("Watchdog fd closed\n");
}
static void safe_exit(int sig)
{
printf("\nSignal %d received - disarming watchdog...\n", sig);
watchdog_close(1);
exit(0);
}
static int watchdog_init(void)
{
int flags, timeout = TIMEOUT;
struct watchdog_info ident;
printf("Opening %s...\n", WATCHDOG_DEV);
wdt_fd = open(WATCHDOG_DEV, O_WRONLY);
if (wdt_fd < 0) {
printf("Failed to open %s: %m\n", WATCHDOG_DEV);
return -1;
}
printf("Watchdog opened and ARMED\n");
flags = WDIOS_ENABLECARD;
if (ioctl(wdt_fd, WDIOC_SETOPTIONS, &flags) < 0)
/* ENOTTY = driver always enabled, that's fine */
printf("WDIOS_ENABLECARD: %m (ok if ENOTTY)\n");
else
printf("Watchdog enabled via WDIOS_ENABLECARD\n");
if (ioctl(wdt_fd, WDIOC_SETTIMEOUT, &timeout) < 0)
printf("WDIOC_SETTIMEOUT failed: %m\n");
else
printf("Timeout set to %d seconds\n", timeout);
/* verify what the driver actually set */
if (ioctl(wdt_fd, WDIOC_GETTIMEOUT, &timeout) == 0)
printf("Actual timeout : %d seconds\n", timeout);
if (ioctl(wdt_fd, WDIOC_GETSUPPORT, &ident) == 0)
printf("Identity : %s\n", ident.identity);
return 0;
}
static void watchdog_tickle(void)
{
int timeleft = 0;
if (ioctl(wdt_fd, WDIOC_KEEPALIVE, 0) < 0) {
printf("WDIOC_KEEPALIVE failed: %m - falling back to write\n");
write(wdt_fd, "1", 1);
}
if (ioctl(wdt_fd, WDIOC_GETTIMELEFT, &timeleft) == 0)
printf("Petted watchdog. Timeleft: %d sec\n", timeleft);
else
printf("Petted watchdog.\n");
}
int main(void)
{
signal(SIGINT, safe_exit);
signal(SIGTERM, safe_exit);
if (watchdog_init() < 0)
return 1;
printf("\nPetting every %d seconds. Ctrl+C to safely stop.\n\n",
PET_INTERVAL);
while (1) {
watchdog_tickle();
sleep(PET_INTERVAL);
}
return 0;
}
Steps to reproduce the issue:
-----------------------------
1. Insert pseries-wdt driver
2. Compile the above proram and run the binary
3. Crash the kernel
Sourabh Jain (1):
powerpc/crash: stop watchdogs before booting kdump kernel
arch/powerpc/kexec/crash.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
--
2.52.0
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH 1/1] powerpc/crash: stop watchdogs before booting kdump kernel
2026-06-03 7:02 [PATCH 0/1] powerpc/crash: protect kdump from active watchdogs Sourabh Jain
@ 2026-06-03 7:02 ` Sourabh Jain
2026-07-09 16:31 ` Ritesh Harjani
0 siblings, 1 reply; 5+ messages in thread
From: Sourabh Jain @ 2026-06-03 7:02 UTC (permalink / raw)
To: linuxppc-dev, maddy, mpe
Cc: npiggin, chleroy, ritesh.list, shivangu, hbathini, mahesh,
adityag, venkat88, sourabhjain, stable, Mahesh Kumar G
On pseries LPAR systems, watchdog timers configured from userspace
can remain active after a kernel panic. During panic triggered crash
dump capture, the crashing kernel jumps directly to the kdump kernel
without shutting down userspace services. As a result, active
watchdogs are not stopped before entering the kdump kernel.
If dump capture takes longer than the watchdog timeout, PHYP resets
the LPAR before dump collection completes, resulting in dump capture
failure.
Fix this by issuing the H_WATCHDOG hcall on the crash shutdown path
to stop all active watchdogs before booting the kdump kernel.
Fixes: 69472ffa6575 ("watchdog/pseries-wdt: initial support for H_WATCHDOG-based watchdog timers")
Reported-by: Mahesh Kumar G <mahe657@linux.ibm.com>
Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
---
arch/powerpc/kexec/crash.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/arch/powerpc/kexec/crash.c b/arch/powerpc/kexec/crash.c
index e6539f213b3d..5651523e3a70 100644
--- a/arch/powerpc/kexec/crash.c
+++ b/arch/powerpc/kexec/crash.c
@@ -28,6 +28,7 @@
#include <asm/interrupt.h>
#include <asm/kexec_ranges.h>
#include <asm/crashdump-ppc64.h>
+#include <asm/hvcall.h>
/*
* The primary CPU waits a while for all secondary CPUs to enter. This is to
@@ -352,6 +353,28 @@ int crash_shutdown_unregister(crash_shutdown_t handler)
}
EXPORT_SYMBOL(crash_shutdown_unregister);
+/**
+ * stop_watchdogs - Stop active watchdogs before entering kdump kernel
+ * On pseries LPAR systems, watchdogs configured from userspace remain
+ * active after a kernel panic because userspace services are not shut
+ * down on the kdump crash path. If a watchdog expires while the kdump
+ * kernel is collecting the dump, PHYP resets the LPAR and dump capture
+ * fails
+ *
+ * 0x200UL : watchdog stop operation
+ * -1 : watchdog number, disable all watchdogs
+ */
+static void stop_watchdogs(void)
+{
+ if (firmware_has_feature(FW_FEATURE_LPAR)) {
+ int rc;
+
+ rc = plpar_hcall_norets_notrace(H_WATCHDOG, 0x200UL, -1);
+ if (rc != H_SUCCESS && rc != H_NOOP)
+ pr_warn("crash: failed to stop watchdogs\n");
+ }
+}
+
void default_machine_crash_shutdown(struct pt_regs *regs)
{
volatile unsigned int i;
@@ -360,6 +383,8 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
if (TRAP(regs) == INTERRUPT_SYSTEM_RESET)
is_via_system_reset = 1;
+ stop_watchdogs();
+
if (IS_ENABLED(CONFIG_SMP))
crash_smp_send_stop();
else
--
2.52.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 1/1] powerpc/crash: stop watchdogs before booting kdump kernel
2026-06-03 7:02 ` [PATCH 1/1] powerpc/crash: stop watchdogs before booting kdump kernel Sourabh Jain
@ 2026-07-09 16:31 ` Ritesh Harjani
2026-07-10 6:08 ` Sourabh Jain
0 siblings, 1 reply; 5+ messages in thread
From: Ritesh Harjani @ 2026-07-09 16:31 UTC (permalink / raw)
To: Sourabh Jain, linuxppc-dev, maddy, mpe
Cc: npiggin, chleroy, shivangu, hbathini, mahesh, adityag, venkat88,
sourabhjain, stable, Mahesh Kumar G
Sourabh Jain <sourabhjain@linux.ibm.com> writes:
> On pseries LPAR systems, watchdog timers configured from userspace
> can remain active after a kernel panic. During panic triggered crash
> dump capture, the crashing kernel jumps directly to the kdump kernel
> without shutting down userspace services. As a result, active
> watchdogs are not stopped before entering the kdump kernel.
>
> If dump capture takes longer than the watchdog timeout, PHYP resets
> the LPAR before dump collection completes, resulting in dump capture
> failure.
>
> Fix this by issuing the H_WATCHDOG hcall on the crash shutdown path
> to stop all active watchdogs before booting the kdump kernel.
>
Nice catch!
> Fixes: 69472ffa6575 ("watchdog/pseries-wdt: initial support for H_WATCHDOG-based watchdog timers")
> Reported-by: Mahesh Kumar G <mahe657@linux.ibm.com>
> Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
> ---
> arch/powerpc/kexec/crash.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/arch/powerpc/kexec/crash.c b/arch/powerpc/kexec/crash.c
> index e6539f213b3d..5651523e3a70 100644
> --- a/arch/powerpc/kexec/crash.c
> +++ b/arch/powerpc/kexec/crash.c
> @@ -28,6 +28,7 @@
> #include <asm/interrupt.h>
> #include <asm/kexec_ranges.h>
> #include <asm/crashdump-ppc64.h>
> +#include <asm/hvcall.h>
>
would be nice, if we could avoid papr specific header into common crash.c
> /*
> * The primary CPU waits a while for all secondary CPUs to enter. This is to
> @@ -352,6 +353,28 @@ int crash_shutdown_unregister(crash_shutdown_t handler)
> }
> EXPORT_SYMBOL(crash_shutdown_unregister);
>
> +/**
> + * stop_watchdogs - Stop active watchdogs before entering kdump kernel
> + * On pseries LPAR systems, watchdogs configured from userspace remain
> + * active after a kernel panic because userspace services are not shut
> + * down on the kdump crash path. If a watchdog expires while the kdump
> + * kernel is collecting the dump, PHYP resets the LPAR and dump capture
> + * fails
> + *
> + * 0x200UL : watchdog stop operation
> + * -1 : watchdog number, disable all watchdogs
> + */
> +static void stop_watchdogs(void)
> +{
> + if (firmware_has_feature(FW_FEATURE_LPAR)) {
> + int rc;
ditto.
Also I guess this could be FW_FEATURE_WATCHDOG
> +
> + rc = plpar_hcall_norets_notrace(H_WATCHDOG, 0x200UL, -1);
- 0x200 is hardcoded.
- -1 is hardcoded.
- I think it's return value is long.
> + if (rc != H_SUCCESS && rc != H_NOOP)
> + pr_warn("crash: failed to stop watchdogs\n");
Let's print rc as well.
> + }
> +}
> +
Looking at the code, we already have a mechanism to register a crash
shutdown handler which anyways is getting called from
default_machine_crash_shutdown(). So, I think we could use this generic
crash handler register mechanism and keep the wdt specific calls within
pseries/setup.c file...
...How about something like this?
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 50b26ed8432d..4e557694d724 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -59,6 +59,7 @@
#include <asm/xics.h>
#include <asm/xive.h>
#include <asm/papr-sysparm.h>
+#include <asm/papr-watchdog.h>
#include <asm/ppc-pci.h>
#include <asm/i8259.h>
#include <asm/udbg.h>
@@ -185,14 +186,42 @@ static void __init fwnmi_init(void)
#endif
}
<...>
+static void pseries_crash_stop_watchdogs(void)
+{
+ long rc;
+
+ rc = plpar_hcall_norets_notrace(H_WATCHDOG, PSERIES_WDTF_OP_STOP,
+ PSERIES_WDT_NUM_ALL);
+ if (rc != H_SUCCESS && rc != H_NOOP)
+ pr_warn("Could not stop watchdogs before kdump rc=%ld\n", rc);
+}
+
/*
* Affix a device for the first timer to the platform bus if
* we have firmware support for the H_WATCHDOG hypercall.
*/
static __init int pseries_wdt_init(void)
{
- if (firmware_has_feature(FW_FEATURE_WATCHDOG))
- platform_device_register_simple("pseries-wdt", 0, NULL, 0);
+ if (!firmware_has_feature(FW_FEATURE_WATCHDOG))
+ return 0;
+
+ platform_device_register_simple("pseries-wdt", 0, NULL, 0);
+
+ if (crash_shutdown_register(pseries_crash_stop_watchdogs))
+ pr_warn("Could not register watchdog crash shutdown handler\n");
+
return 0;
}
machine_subsys_initcall(pseries, pseries_wdt_init);
Note that I added papr-watchdog.h header file in above. I am guessing we
can move some definitions from drivers/watchdog/pseries-wdt.c to
arch/powerpc/include/asm/papr-watchdog.h in a separate patch before this
change.
I think you get the idea. Can you try this way and let me know if this works?
-ritesh
> void default_machine_crash_shutdown(struct pt_regs *regs)
> {
> volatile unsigned int i;
> @@ -360,6 +383,8 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
> if (TRAP(regs) == INTERRUPT_SYSTEM_RESET)
> is_via_system_reset = 1;
>
> + stop_watchdogs();
> +
> if (IS_ENABLED(CONFIG_SMP))
> crash_smp_send_stop();
> else
> --
> 2.52.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 1/1] powerpc/crash: stop watchdogs before booting kdump kernel
2026-07-09 16:31 ` Ritesh Harjani
@ 2026-07-10 6:08 ` Sourabh Jain
2026-07-11 3:15 ` Ritesh Harjani
0 siblings, 1 reply; 5+ messages in thread
From: Sourabh Jain @ 2026-07-10 6:08 UTC (permalink / raw)
To: Ritesh Harjani (IBM), linuxppc-dev, maddy, mpe
Cc: npiggin, chleroy, shivangu, hbathini, mahesh, adityag, venkat88,
stable, Mahesh Kumar G
On 09/07/26 22:01, Ritesh Harjani (IBM) wrote:
> Sourabh Jain <sourabhjain@linux.ibm.com> writes:
>
>> On pseries LPAR systems, watchdog timers configured from userspace
>> can remain active after a kernel panic. During panic triggered crash
>> dump capture, the crashing kernel jumps directly to the kdump kernel
>> without shutting down userspace services. As a result, active
>> watchdogs are not stopped before entering the kdump kernel.
>>
>> If dump capture takes longer than the watchdog timeout, PHYP resets
>> the LPAR before dump collection completes, resulting in dump capture
>> failure.
>>
>> Fix this by issuing the H_WATCHDOG hcall on the crash shutdown path
>> to stop all active watchdogs before booting the kdump kernel.
>>
> Nice catch!
>
>> Fixes: 69472ffa6575 ("watchdog/pseries-wdt: initial support for H_WATCHDOG-based watchdog timers")
>> Reported-by: Mahesh Kumar G <mahe657@linux.ibm.com>
>> Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
>> ---
>> arch/powerpc/kexec/crash.c | 25 +++++++++++++++++++++++++
>> 1 file changed, 25 insertions(+)
>>
>> diff --git a/arch/powerpc/kexec/crash.c b/arch/powerpc/kexec/crash.c
>> index e6539f213b3d..5651523e3a70 100644
>> --- a/arch/powerpc/kexec/crash.c
>> +++ b/arch/powerpc/kexec/crash.c
>> @@ -28,6 +28,7 @@
>> #include <asm/interrupt.h>
>> #include <asm/kexec_ranges.h>
>> #include <asm/crashdump-ppc64.h>
>> +#include <asm/hvcall.h>
>>
> would be nice, if we could avoid papr specific header into common crash.c
>
>> /*
>> * The primary CPU waits a while for all secondary CPUs to enter. This is to
>> @@ -352,6 +353,28 @@ int crash_shutdown_unregister(crash_shutdown_t handler)
>> }
>> EXPORT_SYMBOL(crash_shutdown_unregister);
>>
>> +/**
>> + * stop_watchdogs - Stop active watchdogs before entering kdump kernel
>> + * On pseries LPAR systems, watchdogs configured from userspace remain
>> + * active after a kernel panic because userspace services are not shut
>> + * down on the kdump crash path. If a watchdog expires while the kdump
>> + * kernel is collecting the dump, PHYP resets the LPAR and dump capture
>> + * fails
>> + *
>> + * 0x200UL : watchdog stop operation
>> + * -1 : watchdog number, disable all watchdogs
>> + */
>> +static void stop_watchdogs(void)
>> +{
>> + if (firmware_has_feature(FW_FEATURE_LPAR)) {
>> + int rc;
> ditto.
> Also I guess this could be FW_FEATURE_WATCHDOG
>
>> +
>> + rc = plpar_hcall_norets_notrace(H_WATCHDOG, 0x200UL, -1);
> - 0x200 is hardcoded.
> - -1 is hardcoded.
> - I think it's return value is long.
>
>> + if (rc != H_SUCCESS && rc != H_NOOP)
>> + pr_warn("crash: failed to stop watchdogs\n");
> Let's print rc as well.
>
>> + }
>> +}
>> +
> Looking at the code, we already have a mechanism to register a crash
> shutdown handler which anyways is getting called from
> default_machine_crash_shutdown(). So, I think we could use this generic
> crash handler register mechanism and keep the wdt specific calls within
> pseries/setup.c file...
That's a good idea. I wasn't aware of this crash handler.
The main reason I wanted to stop the watchdog as soon as the kernel
enters the architecture-specific crash code is that, on PowerPC, the
crash path sends IPIs to all other CPUs and waits for their response
before continuing. Because of this, I thought it would be better to
stop the watchdog as early as possible.
I knew there was an IPI timeout, but I just checked and it's set to
10 seconds. See crash_kexec_prepare_cpus() in crash.c.
The crash handler is called after the IPI wait. So, in theory, the watchdog
timeout could occur before the IPI timeout. But I think that's a very
unlikely
scenario, though. So I think disabling the watchdog from the crash handler
is a reasonable approach.
Please share your thoughts.
>
> ...How about something like this?
>
> diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
> index 50b26ed8432d..4e557694d724 100644
> --- a/arch/powerpc/platforms/pseries/setup.c
> +++ b/arch/powerpc/platforms/pseries/setup.c
> @@ -59,6 +59,7 @@
> #include <asm/xics.h>
> #include <asm/xive.h>
> #include <asm/papr-sysparm.h>
> +#include <asm/papr-watchdog.h>
> #include <asm/ppc-pci.h>
> #include <asm/i8259.h>
> #include <asm/udbg.h>
> @@ -185,14 +186,42 @@ static void __init fwnmi_init(void)
> #endif
> }
>
> <...>
>
> +static void pseries_crash_stop_watchdogs(void)
> +{
> + long rc;
> +
> + rc = plpar_hcall_norets_notrace(H_WATCHDOG, PSERIES_WDTF_OP_STOP,
> + PSERIES_WDT_NUM_ALL);
> + if (rc != H_SUCCESS && rc != H_NOOP)
> + pr_warn("Could not stop watchdogs before kdump rc=%ld\n", rc);
> +}
> +
> /*
> * Affix a device for the first timer to the platform bus if
> * we have firmware support for the H_WATCHDOG hypercall.
> */
> static __init int pseries_wdt_init(void)
> {
> - if (firmware_has_feature(FW_FEATURE_WATCHDOG))
> - platform_device_register_simple("pseries-wdt", 0, NULL, 0);
> + if (!firmware_has_feature(FW_FEATURE_WATCHDOG))
> + return 0;
> +
> + platform_device_register_simple("pseries-wdt", 0, NULL, 0);
> +
> + if (crash_shutdown_register(pseries_crash_stop_watchdogs))
> + pr_warn("Could not register watchdog crash shutdown handler\n");
> +
> return 0;
> }
> machine_subsys_initcall(pseries, pseries_wdt_init);
>
>
> Note that I added papr-watchdog.h header file in above. I am guessing we
> can move some definitions from drivers/watchdog/pseries-wdt.c to
> arch/powerpc/include/asm/papr-watchdog.h in a separate patch before this
> change.
Yes, it is better to keep the watchdog definitions in a common header
instead
of duplicating them in multiple places.
> I think you get the idea. Can you try this way and let me know if this works?
Sure. Thanks for the review.
- Sourabh Jain
>
> -ritesh
>
>> void default_machine_crash_shutdown(struct pt_regs *regs)
>> {
>> volatile unsigned int i;
>> @@ -360,6 +383,8 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
>> if (TRAP(regs) == INTERRUPT_SYSTEM_RESET)
>> is_via_system_reset = 1;
>>
>> + stop_watchdogs();
>> +
>> if (IS_ENABLED(CONFIG_SMP))
>> crash_smp_send_stop();
>> else
>> --
>> 2.52.0
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 1/1] powerpc/crash: stop watchdogs before booting kdump kernel
2026-07-10 6:08 ` Sourabh Jain
@ 2026-07-11 3:15 ` Ritesh Harjani
0 siblings, 0 replies; 5+ messages in thread
From: Ritesh Harjani @ 2026-07-11 3:15 UTC (permalink / raw)
To: Sourabh Jain, linuxppc-dev, maddy, mpe
Cc: npiggin, chleroy, shivangu, hbathini, mahesh, adityag, venkat88,
stable, Mahesh Kumar G
Sourabh Jain <sourabhjain@linux.ibm.com> writes:
>> Looking at the code, we already have a mechanism to register a crash
>> shutdown handler which anyways is getting called from
>> default_machine_crash_shutdown(). So, I think we could use this generic
>> crash handler register mechanism and keep the wdt specific calls within
>> pseries/setup.c file...
>
> That's a good idea. I wasn't aware of this crash handler.
>
> The main reason I wanted to stop the watchdog as soon as the kernel
> enters the architecture-specific crash code is that, on PowerPC, the
> crash path sends IPIs to all other CPUs and waits for their response
> before continuing. Because of this, I thought it would be better to
> stop the watchdog as early as possible.
>
> I knew there was an IPI timeout, but I just checked and it's set to
> 10 seconds. See crash_kexec_prepare_cpus() in crash.c.
>
That's just the max worst case timeout value, which is unlikely to be
hit. FWIW, the watchdog timeout value in the example usage for
sbd.8.pod.in file seems to be 15sec.
> The crash handler is called after the IPI wait. So, in theory, the watchdog
> timeout could occur before the IPI timeout. But I think that's a very
> unlikely
> scenario, though.
I agree.
> So I think disabling the watchdog from the crash handler
> is a reasonable approach.
>
> Please share your thoughts.
>
yup! I agree, the crash handler looks to be a much better approach
since it avoids, hcall definitions scattered in common
powerpc/kexec/crash.c file. This also provides setjmp/longjmp for
recovering from any bogus exceptions during crash handling.
But we will know more when you will give it a try!
-ritesh
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-07-11 3:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-03 7:02 [PATCH 0/1] powerpc/crash: protect kdump from active watchdogs Sourabh Jain
2026-06-03 7:02 ` [PATCH 1/1] powerpc/crash: stop watchdogs before booting kdump kernel Sourabh Jain
2026-07-09 16:31 ` Ritesh Harjani
2026-07-10 6:08 ` Sourabh Jain
2026-07-11 3:15 ` Ritesh Harjani
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.