public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: George Anzinger <george@mvista.com>
To: Keith Owens <kaos@ocs.com.au>
Cc: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] NMI watch dog notify patch
Date: Mon, 01 Aug 2005 15:58:24 -0700	[thread overview]
Message-ID: <42EEA910.5060902@mvista.com> (raw)
In-Reply-To: <12270.1122693891@ocs3.ocs.com.au>

[-- Attachment #1: Type: text/plain, Size: 1026 bytes --]

Keith Owens wrote:
> On Fri, 29 Jul 2005 13:55:23 -0700, 
> George Anzinger <george@mvista.com> wrote:
> 
>>	This patch adds a notify to the die_nmi notify that the system
>>	is about to be taken down.  If the notify is handled with a
>>	NOTIFY_STOP return, the system is given a new lease on life.
>>
>>void die_nmi (struct pt_regs *regs, const char *msg)
>>{
>>+	if (notify_die(DIE_NMIWATCHDOG, "nmi_watchdog", regs, 
>>+		       0, 0, SIGINT) == NOTIFY_STOP)
>>+		return;
>>+
>>	spin_lock(&nmi_print_lock);
>>	/*
>>	* We are in trouble anyway, lets at least try
> 
> 
> Minor nitpick.  die_nmi() already gets a message passed in to
> distinguish between different types of nmi.  Pass that message to
> notify_die(), on the off chance that the notified routines can use that
> difference.

Excellent idea!
> 
> Also your patch adds a trailing whitespace on the call to notify_die().
> 
Fixed.

This should do it.
-
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/

[-- Attachment #2: nmi-notify.patch --]
[-- Type: text/plain, Size: 1788 bytes --]

Source: MontaVista Software, Inc. George Anzinger <george@mvista.com>
Type: Enhancement 
Description:

	This patch adds a notify to the die_nmi notify that the system
	is about to be taken down.  If the notify is handled with a
	NOTIFY_STOP return, the system is given a new lease on life.

	We also change the nmi watchdog to carry on if die_nmi returns.

	This give debug code a chance to a) catch watchdog timeouts and
	b) possibly allow the system to continue, realizing that 
	the time out may be due to debugger activities such as single 
	stepping which is usually done with "other" cpus held.

Signed-off-by: George Anzinger<george@mvista.com>

 nmi.c   |    5 ++++-
 traps.c |    4 ++++
 2 files changed, 8 insertions(+), 1 deletion(-)

Index: linux-2.6.13-rc/arch/i386/kernel/nmi.c
===================================================================
--- linux-2.6.13-rc.orig/arch/i386/kernel/nmi.c
+++ linux-2.6.13-rc/arch/i386/kernel/nmi.c
@@ -495,8 +495,11 @@ void nmi_watchdog_tick (struct pt_regs *
 		 */
 		alert_counter[cpu]++;
 		if (alert_counter[cpu] == 5*nmi_hz)
+			/*
+			 * die_nmi will return ONLY if NOTIFY_STOP happens..
+			 */
 			die_nmi(regs, "NMI Watchdog detected LOCKUP");
-	} else {
+
 		last_irq_sums[cpu] = sum;
 		alert_counter[cpu] = 0;
 	}
Index: linux-2.6.13-rc/arch/i386/kernel/traps.c
===================================================================
--- linux-2.6.13-rc.orig/arch/i386/kernel/traps.c
+++ linux-2.6.13-rc/arch/i386/kernel/traps.c
@@ -555,6 +555,10 @@ static DEFINE_SPINLOCK(nmi_print_lock);
 
 void die_nmi (struct pt_regs *regs, const char *msg)
 {
+	if (notify_die(DIE_NMIWATCHDOG, msg, regs, 0, 0, SIGINT) ==
+	    NOTIFY_STOP)
+		return;
+
 	spin_lock(&nmi_print_lock);
 	/*
 	* We are in trouble anyway, lets at least try

  reply	other threads:[~2005-08-01 23:00 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
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 [this message]
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=42EEA910.5060902@mvista.com \
    --to=george@mvista.com \
    --cc=akpm@osdl.org \
    --cc=kaos@ocs.com.au \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox