* [PATCH] PM: sleep: Allow disabling DPM watchdog by default
@ 2026-05-28 10:32 Tzung-Bi Shih
2026-06-01 18:39 ` Rafael J. Wysocki
0 siblings, 1 reply; 6+ messages in thread
From: Tzung-Bi Shih @ 2026-05-28 10:32 UTC (permalink / raw)
To: Jonathan Corbet, Rafael J. Wysocki, Greg Kroah-Hartman,
Danilo Krummrich
Cc: Shuah Khan, Pavel Machek, Len Brown, tzungbi, linux-doc,
linux-kernel, linux-pm, driver-core
Introduce the CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED Kconfig option to
allow the device suspend/resume watchdog (DPM watchdog) to be disabled
by default at compile time.
Additionally, introduce the "dpm_watchdog_enabled" boot parameter to
enable or disable the watchdog at boot time.
This provides flexibility for systems that want the watchdog code
compiled in but inactive by default, allowing it to be enabled only when
needed.
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
---
.../admin-guide/kernel-parameters.txt | 8 ++++++++
drivers/base/power/main.c | 20 +++++++++++++++++++
kernel/power/Kconfig | 9 +++++++++
3 files changed, 37 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 85936e48cf9a..3a919e660137 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1344,6 +1344,14 @@ Kernel parameters
it becomes active and is searched during signature
verification.
+ dpm_watchdog_enabled=
+ [KNL] Enable or disable the device suspend/resume
+ watchdog (DPM watchdog).
+ Format: {"0" | "1"}
+ 0: disable
+ 1: enable
+ Default value is set by CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED.
+
driver_async_probe= [KNL]
List of driver names to be probed asynchronously. *
matches with all driver names. If * is specified, the
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index e1b550664bab..4f92905f3edf 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -527,6 +527,20 @@ module_param(dpm_watchdog_all_cpu_backtrace, bool, 0644);
MODULE_PARM_DESC(dpm_watchdog_all_cpu_backtrace,
"Backtrace all CPUs on DPM watchdog timeout");
+#ifdef CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED
+static unsigned int __read_mostly dpm_watchdog_enabled = 1;
+#else
+static unsigned int __read_mostly dpm_watchdog_enabled;
+#endif
+
+static int __init dpm_watchdog_setup(char *str)
+{
+ if (kstrtouint(str, 0, &dpm_watchdog_enabled) == 0)
+ return 1;
+ return 0;
+}
+__setup("dpm_watchdog_enabled=", dpm_watchdog_setup);
+
/**
* dpm_watchdog_handler - Driver suspend / resume watchdog handler.
* @t: The timer that PM watchdog depends on.
@@ -570,6 +584,9 @@ static void dpm_watchdog_set(struct dpm_watchdog *wd, struct device *dev)
{
struct timer_list *timer = &wd->timer;
+ if (!dpm_watchdog_enabled)
+ return;
+
wd->dev = dev;
wd->tsk = current;
wd->fatal = CONFIG_DPM_WATCHDOG_TIMEOUT == CONFIG_DPM_WATCHDOG_WARNING_TIMEOUT;
@@ -588,6 +605,9 @@ static void dpm_watchdog_clear(struct dpm_watchdog *wd)
{
struct timer_list *timer = &wd->timer;
+ if (!dpm_watchdog_enabled)
+ return;
+
timer_delete_sync(timer);
timer_destroy_on_stack(timer);
}
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
index 05337f437cca..d4cecdb8575e 100644
--- a/kernel/power/Kconfig
+++ b/kernel/power/Kconfig
@@ -267,6 +267,15 @@ config DPM_WATCHDOG
captured in pstore device for inspection in subsequent
boot session.
+config DPM_WATCHDOG_DEFAULT_ENABLED
+ bool "Enable DPM watchdog by default"
+ depends on DPM_WATCHDOG
+ default y
+ help
+ If you say Y here, the DPM watchdog will be enabled by default.
+ If you say N, it will be compiled in but disabled, requiring a
+ boot parameter to activate.
+
config DPM_WATCHDOG_TIMEOUT
int "Watchdog timeout to panic in seconds"
range 1 120
--
2.54.0.929.g9b7fa37559-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH] PM: sleep: Allow disabling DPM watchdog by default
2026-05-28 10:32 [PATCH] PM: sleep: Allow disabling DPM watchdog by default Tzung-Bi Shih
@ 2026-06-01 18:39 ` Rafael J. Wysocki
2026-06-02 2:08 ` Tzung-Bi Shih
0 siblings, 1 reply; 6+ messages in thread
From: Rafael J. Wysocki @ 2026-06-01 18:39 UTC (permalink / raw)
To: Tzung-Bi Shih
Cc: Jonathan Corbet, Rafael J. Wysocki, Greg Kroah-Hartman,
Danilo Krummrich, Shuah Khan, Pavel Machek, Len Brown, linux-doc,
linux-kernel, linux-pm, driver-core
On Thu, May 28, 2026 at 12:32 PM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
>
> Introduce the CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED Kconfig option to
> allow the device suspend/resume watchdog (DPM watchdog) to be disabled
> by default at compile time.
>
> Additionally, introduce the "dpm_watchdog_enabled" boot parameter to
> enable or disable the watchdog at boot time.
>
> This provides flexibility for systems that want the watchdog code
> compiled in but inactive by default, allowing it to be enabled only when
> needed.
>
> Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
> ---
> .../admin-guide/kernel-parameters.txt | 8 ++++++++
> drivers/base/power/main.c | 20 +++++++++++++++++++
> kernel/power/Kconfig | 9 +++++++++
> 3 files changed, 37 insertions(+)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 85936e48cf9a..3a919e660137 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -1344,6 +1344,14 @@ Kernel parameters
> it becomes active and is searched during signature
> verification.
>
> + dpm_watchdog_enabled=
> + [KNL] Enable or disable the device suspend/resume
> + watchdog (DPM watchdog).
> + Format: {"0" | "1"}
> + 0: disable
> + 1: enable
> + Default value is set by CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED.
> +
> driver_async_probe= [KNL]
> List of driver names to be probed asynchronously. *
> matches with all driver names. If * is specified, the
> diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> index e1b550664bab..4f92905f3edf 100644
> --- a/drivers/base/power/main.c
> +++ b/drivers/base/power/main.c
> @@ -527,6 +527,20 @@ module_param(dpm_watchdog_all_cpu_backtrace, bool, 0644);
> MODULE_PARM_DESC(dpm_watchdog_all_cpu_backtrace,
> "Backtrace all CPUs on DPM watchdog timeout");
>
> +#ifdef CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED
> +static unsigned int __read_mostly dpm_watchdog_enabled = 1;
> +#else
> +static unsigned int __read_mostly dpm_watchdog_enabled;
> +#endif
> +
> +static int __init dpm_watchdog_setup(char *str)
> +{
> + if (kstrtouint(str, 0, &dpm_watchdog_enabled) == 0)
> + return 1;
> + return 0;
> +}
> +__setup("dpm_watchdog_enabled=", dpm_watchdog_setup);
You might as well use a module parameter to allow this to be set or
clear at run time. Is there a particular reason why you only want it
to be enabled or disabled via the kernel command line?
> +
> /**
> * dpm_watchdog_handler - Driver suspend / resume watchdog handler.
> * @t: The timer that PM watchdog depends on.
> @@ -570,6 +584,9 @@ static void dpm_watchdog_set(struct dpm_watchdog *wd, struct device *dev)
> {
> struct timer_list *timer = &wd->timer;
>
> + if (!dpm_watchdog_enabled)
> + return;
> +
> wd->dev = dev;
> wd->tsk = current;
> wd->fatal = CONFIG_DPM_WATCHDOG_TIMEOUT == CONFIG_DPM_WATCHDOG_WARNING_TIMEOUT;
> @@ -588,6 +605,9 @@ static void dpm_watchdog_clear(struct dpm_watchdog *wd)
> {
> struct timer_list *timer = &wd->timer;
>
> + if (!dpm_watchdog_enabled)
> + return;
> +
> timer_delete_sync(timer);
> timer_destroy_on_stack(timer);
> }
> diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
> index 05337f437cca..d4cecdb8575e 100644
> --- a/kernel/power/Kconfig
> +++ b/kernel/power/Kconfig
> @@ -267,6 +267,15 @@ config DPM_WATCHDOG
> captured in pstore device for inspection in subsequent
> boot session.
>
> +config DPM_WATCHDOG_DEFAULT_ENABLED
> + bool "Enable DPM watchdog by default"
> + depends on DPM_WATCHDOG
> + default y
> + help
> + If you say Y here, the DPM watchdog will be enabled by default.
> + If you say N, it will be compiled in but disabled, requiring a
> + boot parameter to activate.
> +
> config DPM_WATCHDOG_TIMEOUT
> int "Watchdog timeout to panic in seconds"
> range 1 120
> --
> 2.54.0.929.g9b7fa37559-goog
>
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] PM: sleep: Allow disabling DPM watchdog by default
2026-06-01 18:39 ` Rafael J. Wysocki
@ 2026-06-02 2:08 ` Tzung-Bi Shih
2026-06-02 8:37 ` Tomasz Figa
0 siblings, 1 reply; 6+ messages in thread
From: Tzung-Bi Shih @ 2026-06-02 2:08 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jonathan Corbet, Greg Kroah-Hartman, Danilo Krummrich, Shuah Khan,
Pavel Machek, Len Brown, linux-doc, linux-kernel, linux-pm,
driver-core, tfiga
On Mon, Jun 01, 2026 at 08:39:42PM +0200, Rafael J. Wysocki wrote:
> On Thu, May 28, 2026 at 12:32 PM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
> > diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> > index e1b550664bab..4f92905f3edf 100644
> > --- a/drivers/base/power/main.c
> > +++ b/drivers/base/power/main.c
> > @@ -527,6 +527,20 @@ module_param(dpm_watchdog_all_cpu_backtrace, bool, 0644);
> > MODULE_PARM_DESC(dpm_watchdog_all_cpu_backtrace,
> > "Backtrace all CPUs on DPM watchdog timeout");
> >
> > +#ifdef CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED
> > +static unsigned int __read_mostly dpm_watchdog_enabled = 1;
> > +#else
> > +static unsigned int __read_mostly dpm_watchdog_enabled;
> > +#endif
> > +
> > +static int __init dpm_watchdog_setup(char *str)
> > +{
> > + if (kstrtouint(str, 0, &dpm_watchdog_enabled) == 0)
> > + return 1;
> > + return 0;
> > +}
> > +__setup("dpm_watchdog_enabled=", dpm_watchdog_setup);
>
> You might as well use a module parameter to allow this to be set or
> clear at run time. Is there a particular reason why you only want it
> to be enabled or disabled via the kernel command line?
Thanks for the suggestion. Mainly because in our use cases, we only need
to set it once at boot time.
Also, I was wondering if we need to consider potential races if the flag
can be set at runtime. E.g.:
1) The flag is set.
2) dpm_watchdog_set() is called and the timer is started.
3) The flag is then unset.
4) The subsequent dpm_watchdog_clear() isn't stop the timer.
Given this, would you still suggest providing the module parameter for
completeness?
>
> > +
> > /**
> > * dpm_watchdog_handler - Driver suspend / resume watchdog handler.
> > * @t: The timer that PM watchdog depends on.
> > @@ -570,6 +584,9 @@ static void dpm_watchdog_set(struct dpm_watchdog *wd, struct device *dev)
> > {
> > struct timer_list *timer = &wd->timer;
> >
> > + if (!dpm_watchdog_enabled)
> > + return;
> > +
> > wd->dev = dev;
> > wd->tsk = current;
> > wd->fatal = CONFIG_DPM_WATCHDOG_TIMEOUT == CONFIG_DPM_WATCHDOG_WARNING_TIMEOUT;
> > @@ -588,6 +605,9 @@ static void dpm_watchdog_clear(struct dpm_watchdog *wd)
> > {
> > struct timer_list *timer = &wd->timer;
> >
> > + if (!dpm_watchdog_enabled)
> > + return;
> > +
> > timer_delete_sync(timer);
> > timer_destroy_on_stack(timer);
> > }
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] PM: sleep: Allow disabling DPM watchdog by default
2026-06-02 2:08 ` Tzung-Bi Shih
@ 2026-06-02 8:37 ` Tomasz Figa
2026-06-02 10:48 ` Tzung-Bi Shih
0 siblings, 1 reply; 6+ messages in thread
From: Tomasz Figa @ 2026-06-02 8:37 UTC (permalink / raw)
To: Tzung-Bi Shih
Cc: Rafael J. Wysocki, Jonathan Corbet, Greg Kroah-Hartman,
Danilo Krummrich, Shuah Khan, Pavel Machek, Len Brown, linux-doc,
linux-kernel, linux-pm, driver-core
On Tue, Jun 2, 2026 at 11:09 AM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
>
> On Mon, Jun 01, 2026 at 08:39:42PM +0200, Rafael J. Wysocki wrote:
> > On Thu, May 28, 2026 at 12:32 PM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
> > > diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> > > index e1b550664bab..4f92905f3edf 100644
> > > --- a/drivers/base/power/main.c
> > > +++ b/drivers/base/power/main.c
> > > @@ -527,6 +527,20 @@ module_param(dpm_watchdog_all_cpu_backtrace, bool, 0644);
> > > MODULE_PARM_DESC(dpm_watchdog_all_cpu_backtrace,
> > > "Backtrace all CPUs on DPM watchdog timeout");
> > >
> > > +#ifdef CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED
> > > +static unsigned int __read_mostly dpm_watchdog_enabled = 1;
> > > +#else
> > > +static unsigned int __read_mostly dpm_watchdog_enabled;
> > > +#endif
> > > +
> > > +static int __init dpm_watchdog_setup(char *str)
> > > +{
> > > + if (kstrtouint(str, 0, &dpm_watchdog_enabled) == 0)
> > > + return 1;
> > > + return 0;
> > > +}
> > > +__setup("dpm_watchdog_enabled=", dpm_watchdog_setup);
> >
> > You might as well use a module parameter to allow this to be set or
> > clear at run time. Is there a particular reason why you only want it
> > to be enabled or disabled via the kernel command line?
>
> Thanks for the suggestion. Mainly because in our use cases, we only need
> to set it once at boot time.
>
> Also, I was wondering if we need to consider potential races if the flag
> can be set at runtime. E.g.:
> 1) The flag is set.
> 2) dpm_watchdog_set() is called and the timer is started.
> 3) The flag is then unset.
> 4) The subsequent dpm_watchdog_clear() isn't stop the timer.
>
> Given this, would you still suggest providing the module parameter for
> completeness?
Would that lead to anything bad, though? If I'm remembering correctly,
would that mean that any already ongoing PM operations would still be
subject to the timer, but not any new ones.
My suggestion would also be to actually make the timeout and warning
timeout configurable at runtime.
Best,
Tomasz
>
> >
> > > +
> > > /**
> > > * dpm_watchdog_handler - Driver suspend / resume watchdog handler.
> > > * @t: The timer that PM watchdog depends on.
> > > @@ -570,6 +584,9 @@ static void dpm_watchdog_set(struct dpm_watchdog *wd, struct device *dev)
> > > {
> > > struct timer_list *timer = &wd->timer;
> > >
> > > + if (!dpm_watchdog_enabled)
> > > + return;
> > > +
> > > wd->dev = dev;
> > > wd->tsk = current;
> > > wd->fatal = CONFIG_DPM_WATCHDOG_TIMEOUT == CONFIG_DPM_WATCHDOG_WARNING_TIMEOUT;
> > > @@ -588,6 +605,9 @@ static void dpm_watchdog_clear(struct dpm_watchdog *wd)
> > > {
> > > struct timer_list *timer = &wd->timer;
> > >
> > > + if (!dpm_watchdog_enabled)
> > > + return;
> > > +
> > > timer_delete_sync(timer);
> > > timer_destroy_on_stack(timer);
> > > }
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] PM: sleep: Allow disabling DPM watchdog by default
2026-06-02 8:37 ` Tomasz Figa
@ 2026-06-02 10:48 ` Tzung-Bi Shih
2026-06-02 12:57 ` Tomasz Figa
0 siblings, 1 reply; 6+ messages in thread
From: Tzung-Bi Shih @ 2026-06-02 10:48 UTC (permalink / raw)
To: Tomasz Figa
Cc: Rafael J. Wysocki, Jonathan Corbet, Greg Kroah-Hartman,
Danilo Krummrich, Shuah Khan, Pavel Machek, Len Brown, linux-doc,
linux-kernel, linux-pm, driver-core
On Tue, Jun 02, 2026 at 05:37:13PM +0900, Tomasz Figa wrote:
> On Tue, Jun 2, 2026 at 11:09 AM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
> >
> > On Mon, Jun 01, 2026 at 08:39:42PM +0200, Rafael J. Wysocki wrote:
> > > On Thu, May 28, 2026 at 12:32 PM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
> > > > diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> > > > index e1b550664bab..4f92905f3edf 100644
> > > > --- a/drivers/base/power/main.c
> > > > +++ b/drivers/base/power/main.c
> > > > @@ -527,6 +527,20 @@ module_param(dpm_watchdog_all_cpu_backtrace, bool, 0644);
> > > > MODULE_PARM_DESC(dpm_watchdog_all_cpu_backtrace,
> > > > "Backtrace all CPUs on DPM watchdog timeout");
> > > >
> > > > +#ifdef CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED
> > > > +static unsigned int __read_mostly dpm_watchdog_enabled = 1;
> > > > +#else
> > > > +static unsigned int __read_mostly dpm_watchdog_enabled;
> > > > +#endif
> > > > +
> > > > +static int __init dpm_watchdog_setup(char *str)
> > > > +{
> > > > + if (kstrtouint(str, 0, &dpm_watchdog_enabled) == 0)
> > > > + return 1;
> > > > + return 0;
> > > > +}
> > > > +__setup("dpm_watchdog_enabled=", dpm_watchdog_setup);
> > >
> > > You might as well use a module parameter to allow this to be set or
> > > clear at run time. Is there a particular reason why you only want it
> > > to be enabled or disabled via the kernel command line?
> >
> > Thanks for the suggestion. Mainly because in our use cases, we only need
> > to set it once at boot time.
> >
> > Also, I was wondering if we need to consider potential races if the flag
> > can be set at runtime. E.g.:
> > 1) The flag is set.
> > 2) dpm_watchdog_set() is called and the timer is started.
> > 3) The flag is then unset.
> > 4) The subsequent dpm_watchdog_clear() isn't stop the timer.
> >
> > Given this, would you still suggest providing the module parameter for
> > completeness?
>
> Would that lead to anything bad, though? If I'm remembering correctly,
> would that mean that any already ongoing PM operations would still be
> subject to the timer, but not any new ones.
I was overthinking the race. All userspace programs should be frozen when
the DPM watchdog is active. The race I was concerned about isn't possible.
Would you still suggest providing the module parameter for completeness?
>
> My suggestion would also be to actually make the timeout and warning
> timeout configurable at runtime.
I'm working on that and I think that should be in a separate patch.
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] PM: sleep: Allow disabling DPM watchdog by default
2026-06-02 10:48 ` Tzung-Bi Shih
@ 2026-06-02 12:57 ` Tomasz Figa
0 siblings, 0 replies; 6+ messages in thread
From: Tomasz Figa @ 2026-06-02 12:57 UTC (permalink / raw)
To: Tzung-Bi Shih
Cc: Rafael J. Wysocki, Jonathan Corbet, Greg Kroah-Hartman,
Danilo Krummrich, Shuah Khan, Pavel Machek, Len Brown, linux-doc,
linux-kernel, linux-pm, driver-core
On Tue, Jun 2, 2026 at 7:48 PM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
>
> On Tue, Jun 02, 2026 at 05:37:13PM +0900, Tomasz Figa wrote:
> > On Tue, Jun 2, 2026 at 11:09 AM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
> > >
> > > On Mon, Jun 01, 2026 at 08:39:42PM +0200, Rafael J. Wysocki wrote:
> > > > On Thu, May 28, 2026 at 12:32 PM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
> > > > > diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> > > > > index e1b550664bab..4f92905f3edf 100644
> > > > > --- a/drivers/base/power/main.c
> > > > > +++ b/drivers/base/power/main.c
> > > > > @@ -527,6 +527,20 @@ module_param(dpm_watchdog_all_cpu_backtrace, bool, 0644);
> > > > > MODULE_PARM_DESC(dpm_watchdog_all_cpu_backtrace,
> > > > > "Backtrace all CPUs on DPM watchdog timeout");
> > > > >
> > > > > +#ifdef CONFIG_DPM_WATCHDOG_DEFAULT_ENABLED
> > > > > +static unsigned int __read_mostly dpm_watchdog_enabled = 1;
> > > > > +#else
> > > > > +static unsigned int __read_mostly dpm_watchdog_enabled;
> > > > > +#endif
> > > > > +
> > > > > +static int __init dpm_watchdog_setup(char *str)
> > > > > +{
> > > > > + if (kstrtouint(str, 0, &dpm_watchdog_enabled) == 0)
> > > > > + return 1;
> > > > > + return 0;
> > > > > +}
> > > > > +__setup("dpm_watchdog_enabled=", dpm_watchdog_setup);
> > > >
> > > > You might as well use a module parameter to allow this to be set or
> > > > clear at run time. Is there a particular reason why you only want it
> > > > to be enabled or disabled via the kernel command line?
> > >
> > > Thanks for the suggestion. Mainly because in our use cases, we only need
> > > to set it once at boot time.
> > >
> > > Also, I was wondering if we need to consider potential races if the flag
> > > can be set at runtime. E.g.:
> > > 1) The flag is set.
> > > 2) dpm_watchdog_set() is called and the timer is started.
> > > 3) The flag is then unset.
> > > 4) The subsequent dpm_watchdog_clear() isn't stop the timer.
> > >
> > > Given this, would you still suggest providing the module parameter for
> > > completeness?
> >
> > Would that lead to anything bad, though? If I'm remembering correctly,
> > would that mean that any already ongoing PM operations would still be
> > subject to the timer, but not any new ones.
>
> I was overthinking the race. All userspace programs should be frozen when
> the DPM watchdog is active. The race I was concerned about isn't possible.
Right. Somehow I was convinced that the DPM watchdog is also used for
runtime PM, but after checking the code it doesn't look like so.
>
> Would you still suggest providing the module parameter for completeness?
I'd also vote for a module parameter. Being able to toggle this at
runtime would be useful for troubleshooting problems without needing
to change the command line arguments (which isn't trivial on some
systems).
>
> >
> > My suggestion would also be to actually make the timeout and warning
> > timeout configurable at runtime.
>
> I'm working on that and I think that should be in a separate patch.
Great, thanks. I'll leave the splitting and other logistics to the maintainers.
Best,
Tomasz
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-06-02 12:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-28 10:32 [PATCH] PM: sleep: Allow disabling DPM watchdog by default Tzung-Bi Shih
2026-06-01 18:39 ` Rafael J. Wysocki
2026-06-02 2:08 ` Tzung-Bi Shih
2026-06-02 8:37 ` Tomasz Figa
2026-06-02 10:48 ` Tzung-Bi Shih
2026-06-02 12:57 ` Tomasz Figa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox