[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070901213301.GB9778@frankl.hpl.hp.com>
Date: Sat, 1 Sep 2007 14:33:01 -0700
From: Stephane Eranian <eranian@....hp.com>
To: Daniel Walker <dwalker@...sta.com>
Cc: akpm@...ux-foundation.org, Andi Kleen <ak@...e.de>,
B.Steinbrink@....de, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/1] i386: fix a hang on stuck nmi watchdog
Daniel,
Thanks for your help tracking down this bug. Maybe we can close
the bugzilla report now.
On Sat, Sep 01, 2007 at 01:54:17PM -0700, Daniel Walker wrote:
> In the case when an nmi gets stucks the endflag stays equal to zero. This
> causes the busy looping on other cpus to continue, even tho the nmi test
> is done.
>
> On my machine with out the change below the system would hang right after
> check_nmi_watchdog(). The change below just sets endflag prior to checking
> if the test was successful or not.
>
> Signed-off-by: Daniel Walker <dwalker@...sta.com>
>
> ---
> arch/i386/kernel/nmi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6.22/arch/i386/kernel/nmi.c
> ===================================================================
> --- linux-2.6.22.orig/arch/i386/kernel/nmi.c
> +++ linux-2.6.22/arch/i386/kernel/nmi.c
> @@ -115,12 +115,12 @@ static int __init check_nmi_watchdog(voi
> atomic_dec(&nmi_active);
> }
> }
> + endflag = 1;
> if (!atomic_read(&nmi_active)) {
> kfree(prev_nmi_count);
> atomic_set(&nmi_active, -1);
> return -1;
> }
> - endflag = 1;
> printk("OK.\n");
>
> /* now that we know it works we can reduce NMI frequency to
> --
>
> --
--
-Stephane
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists