Re: tickle nmi watchdog whilst doing serial writes.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux