Re: [BUG?] false positive in soft lockup detector while unlzmainitramfs on slow cpu

From: Don Zickus
Date: Wed Jan 30 2013 - 10:51:36 EST


On Tue, Jan 29, 2013 at 10:48:27PM +0530, anish kumar wrote:
> Sorry for digressing from the topic but I think there is something wrong
> with my understanding or something wrong with the code.So I guess Don
> can clarify this.
> If I pass this below parameter during boot i.e. setting watchdog_enabled
> to zero.
> __setup("nowatchdog", nowatchdog_setup);
>
> Now I use sysctl to enable the watchdog then wouldn't the below code
> will hinder enabling the watchdog?
>
> static void watchdog_enable_all_cpus(void)
> {//snip
> if (watchdog_disabled) { /* this is zero ?? */
> watchdog_disabled = 0;
> //snip
> }
>
> Should watchdog_disabled be set to 1?Or is it that we always disable the
> watchdog and then enable it?

It seems like a bug, so does something like this fix it? There is
probably a better way to handle the internal representation of the
watchdog state (watchdog_disable) and the procfs version
(watchdog_enable), but I just can't think of something right now. :-(

Cheers,
Don


diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 75a2ab3..d287726 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -82,6 +82,7 @@ __setup("softlockup_panic=", softlockup_panic_setup);
static int __init nowatchdog_setup(char *str)
{
watchdog_enabled = 0;
+ watchdog_disabled =1;
return 1;
}
__setup("nowatchdog", nowatchdog_setup);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/