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

From: anish kumar
Date: Wed Jan 30 2013 - 10:59:35 EST


On Wed, 2013-01-30 at 10:51 -0500, Don Zickus wrote:
> 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;
I don't know if this will work or not but while going through the code I
spotted this.I will think of something better if I couldn't think of
anything better than anyway we have this patch.
> 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/