diff mbox

commit 70fea60d888d caused s2ram regression with WD disk

Message ID s5hoakhgqdj.wl-tiwai@suse.de (mailing list archive)
State Accepted, archived
Delegated to: Rafael Wysocki
Headers show

Commit Message

Takashi Iwai June 15, 2015, 11:31 a.m. UTC
At Mon, 15 Jun 2015 10:55:36 +0800,
Aaron Lu wrote:
> 
> Hi,
> 
> As explained by Takashi:
> "
> So this looks like the cause.  The recent kernel has a watchdog for
> async resume workers, and if it expires, it panics.  This explains why
> 3.12 worked; the watchdog was introduced since 3.13.
> 
> The timeout length is unfortunately fixed in Kconfig, set to 12 as
> default.  And this seems too short.  We should extend this to at least a
> minute, I suppose.  Also, it'd be better to be dynamically
> configuratble.
> "
> https://bugzilla.opensuse.org/show_bug.cgi?id=934397#c5
> 
> The upstream bug page is here:
> https://bugzilla.kernel.org/show_bug.cgi?id=91921
> Since Benoit isn't registered there, I write the email for discussion.

Thanks Aaron for starting a thread.

Below is a patch to make the default value a bit safer.

I can submit another patch to add a boot option to change the timeout
value, too, if anyone thinks it's worth.  Just let me know.


thanks,

Takashi

-- 8< --
From: Takashi Iwai <tiwai@suse.de>
Subject: [PATCH] PM: Increase default DPM watchdog timeout to 60

Many harddisks (mostly WD ones) have firmware problems and take too
long, more than 10 seconds, to resume from suspend.  And this often
exceeds the default DPM watchdog timeout (12 seconds), resulting in a
kernel panic out of sudden.

Since most distros just take the default as is, we should give a bit
more safer value.  This patch increases the default value from 12
seconds to one minute, which has been confirmed to be long enough for
such problematic disks.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=91921
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 kernel/power/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Rafael J. Wysocki June 15, 2015, 11:07 p.m. UTC | #1
On Monday, June 15, 2015 01:31:04 PM Takashi Iwai wrote:
> At Mon, 15 Jun 2015 10:55:36 +0800,
> Aaron Lu wrote:
> > 
> > Hi,
> > 
> > As explained by Takashi:
> > "
> > So this looks like the cause.  The recent kernel has a watchdog for
> > async resume workers, and if it expires, it panics.  This explains why
> > 3.12 worked; the watchdog was introduced since 3.13.
> > 
> > The timeout length is unfortunately fixed in Kconfig, set to 12 as
> > default.  And this seems too short.  We should extend this to at least a
> > minute, I suppose.  Also, it'd be better to be dynamically
> > configuratble.
> > "
> > https://bugzilla.opensuse.org/show_bug.cgi?id=934397#c5
> > 
> > The upstream bug page is here:
> > https://bugzilla.kernel.org/show_bug.cgi?id=91921
> > Since Benoit isn't registered there, I write the email for discussion.
> 
> Thanks Aaron for starting a thread.
> 
> Below is a patch to make the default value a bit safer.
> 
> I can submit another patch to add a boot option to change the timeout
> value, too, if anyone thinks it's worth.  Just let me know.
> 
> 
> thanks,
> 
> Takashi
> 
> -- 8< --
> From: Takashi Iwai <tiwai@suse.de>
> Subject: [PATCH] PM: Increase default DPM watchdog timeout to 60
> 
> Many harddisks (mostly WD ones) have firmware problems and take too
> long, more than 10 seconds, to resume from suspend.  And this often
> exceeds the default DPM watchdog timeout (12 seconds), resulting in a
> kernel panic out of sudden.
> 
> Since most distros just take the default as is, we should give a bit
> more safer value.  This patch increases the default value from 12
> seconds to one minute, which has been confirmed to be long enough for
> such problematic disks.

That's totally fine by me, so I can apply the patch unless somebody has a
better idea about how to address the issue at hand.

> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=91921
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> ---
>  kernel/power/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
> index 7e01f78f0417..9e302315e33d 100644
> --- a/kernel/power/Kconfig
> +++ b/kernel/power/Kconfig
> @@ -187,7 +187,7 @@ config DPM_WATCHDOG
>  config DPM_WATCHDOG_TIMEOUT
>  	int "Watchdog timeout in seconds"
>  	range 1 120
> -	default 12
> +	default 60
>  	depends on DPM_WATCHDOG
>  
>  config PM_TRACE
>
diff mbox

Patch

diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
index 7e01f78f0417..9e302315e33d 100644
--- a/kernel/power/Kconfig
+++ b/kernel/power/Kconfig
@@ -187,7 +187,7 @@  config DPM_WATCHDOG
 config DPM_WATCHDOG_TIMEOUT
 	int "Watchdog timeout in seconds"
 	range 1 120
-	default 12
+	default 60
 	depends on DPM_WATCHDOG
 
 config PM_TRACE