lkml.org 
[lkml]   [2005]   [May]   [14]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: tickle nmi watchdog whilst doing serial writes.
FromAlexander Nyberg <>
DateSat, 14 May 2005 12:53:07 +0200
> Hi,
> 
> Suspect this can be triggered using alt+sysreq+T on a busy system with a slow 
> serial console.  Might be a easy way to see if this patch fixes the issue?
> 

Sysrq-t already tickles the watchdog between the printing of each task
so you'll have to remove the nmi tickling in show_state() if you want to
use it as a test case.

But uhm, it should take at least 5 seconds of no-interrupts before the
NMI watchdog decides the box is dead so this is kind of weird.


> > <obwhitespacewhine> spose so.
> > 
> > --- 25/drivers/serial/8250.c~tickle-nmi-watchdog-whilst-doing-serial-writes	2005-05-14 00:03:09.000000000 -0700
> > +++ 25-akpm/drivers/serial/8250.c	2005-05-14 00:06:53.000000000 -0700
> > @@ -40,6 +40,7 @@
> >  #include <linux/serial_core.h>
> >  #include <linux/serial.h>
> >  #include <linux/serial_8250.h>
> > +#include <linux/nmi.h>
> > 
> >  #include <asm/io.h>
> >  #include <asm/irq.h>
> > @@ -2098,9 +2099,11 @@ static inline void wait_for_xmitr(struct
> >  	/* Wait up to 1s for flow control if necessary */
> >  	if (up->port.flags & UPF_CONS_FLOW) {
> >  		tmout = 1000000;
> > -		while (--tmout &&
> > -		       ((serial_in(up, UART_MSR) & UART_MSR_CTS) == 0))
> > +		while (!(serial_in(up, UART_MSR) & UART_MSR_CTS) && --tmout) {
> >  			udelay(1);
> > +			if ((tmout % 1000) == 0)
> > +				touch_nmi_watchdog();
> > +		}
> >  	}
> >  }
> > 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-05-14 12:57    [from the cache]
©2003-2008