From: Keith Owens <kaos@sgi.com>
To: george@mvista.com
Cc: Andrew Morton <akpm@osdl.org>, lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] NMI watch dog notify patch
Date: Fri, 29 Jul 2005 15:09:04 +1000 [thread overview]
Message-ID: <7911.1122613744@kao2.melbourne.sgi.com> (raw)
In-Reply-To: Your message of "Thu, 28 Jul 2005 21:16:56 MST." <42E9ADB8.1010501@mvista.com>
On Thu, 28 Jul 2005 21:16:56 -0700,
George Anzinger <george@mvista.com> wrote:
>Keith Owens wrote:
>> On Thu, 28 Jul 2005 13:31:58 -0700,
>> George Anzinger <george@mvista.com> wrote:
>>
>>>I have been doing some work on kgdb to pull a few of it "fingers" out of
>>>various places in the kernel. This is the final location where we have
>>>a kgdb intercept not covered by a notify.
>>
>>
>> I like the idea, but the hook should be in die_nmi(), not in the
>> watchdog, using the reason that is already passed into die_nmi.
>> die_nmi() is also called for a real NMI.
>>
>I had though that too, but it does not allow recovery (i.e. lets reset
>the watchdog and try again).
die_nmi() returns to nmi_watchdog_tick(), nmi_watchdog_tick does the
reset and continues. Patch below.
>Hmm.. just looked at traps.c. Seems die_nmi is NOT called from the nmi
>trap, only from the watchdog. Also, there is a notify in the path to
>the other nmi stuff.
I was looking at unknown_nmi_panic_callback(), which also calls
die_nmi().
traps.c already has several notify_die() calls, nmi.c has none. It is
cleaner to keep all the notification in traps.c, with this small change
to nmi.c to cope with die_nmi() returning.
Index: linux/arch/i386/kernel/nmi.c
===================================================================
--- linux.orig/arch/i386/kernel/nmi.c 2005-07-28 17:22:06.735038510 +1000
+++ linux/arch/i386/kernel/nmi.c 2005-07-29 15:19:00.371196596 +1000
@@ -494,8 +494,10 @@ void nmi_watchdog_tick (struct pt_regs *
* wait a few IRQs (5 seconds) before doing the oops ...
*/
alert_counter[cpu]++;
- if (alert_counter[cpu] == 5*nmi_hz)
+ if (alert_counter[cpu] == 5*nmi_hz) {
die_nmi(regs, "NMI Watchdog detected LOCKUP");
+ alert_counter[cpu] = 0;
+ }
} else {
last_irq_sums[cpu] = sum;
alert_counter[cpu] = 0;
next prev parent reply other threads:[~2005-07-29 5:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-28 20:31 [PATCH] NMI watch dog notify patch George Anzinger
2005-07-28 23:13 ` Andrew Morton
2005-07-28 23:58 ` George Anzinger
2005-07-29 0:12 ` Andrew Morton
2005-07-29 1:50 ` Keith Owens
2005-07-29 4:16 ` George Anzinger
2005-07-29 5:09 ` Keith Owens [this message]
2005-07-29 5:14 ` Andrew Morton
2005-07-29 20:55 ` George Anzinger
2005-07-30 3:24 ` Keith Owens
2005-08-01 22:58 ` George Anzinger
2005-08-02 20:26 ` [PATCH] " George Anzinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7911.1122613744@kao2.melbourne.sgi.com \
--to=kaos@sgi.com \
--cc=akpm@osdl.org \
--cc=george@mvista.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.