Re: tickle nmi watchdog whilst doing serial writes.

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

 



On Fri, May 13, 2005 at 09:14:52PM +0200, Arjan van de Ven wrote:
> On Fri, 2005-05-13 at 14:48 -0400, Dave Jones wrote:
> >  	if (up->port.flags & UPF_CONS_FLOW) {
> >  		tmout = 1000000;
> >  		while (--tmout &&
> > -		       ((serial_in(up, UART_MSR) & UART_MSR_CTS) == 0))
> > +		       ((serial_in(up, UART_MSR) & UART_MSR_CTS) == 0)) {
> >  			udelay(1);
> > +			touch_nmi_watchdog();
> > +		}
> >  	}
> >  }
> >  
> > 
> > We *could* tickle it less often, but given we're busy waiting anyway
> > it probably doesnt make sense to not favour the more simple approach.
> > Hmm, maybe we want a cpu_relax() in there too. opinions?
> 
> udelay() includes cpu_relax() already so that is futile.
> 
> However.. this is a hack. Do we really need to do busy waiting here for
> this long??

Of course you do.  Think about CTS flow control where the other end
is also busy and has to drain its tty buffers before it can allow
the remote end to proceed.  (And who says its another Linux box
anyway?)

However, if people are using CTS flow control, they want reliable
logging.  Therefore, it's even questionable whether we should even
time out (but we do to keep the system "running".)

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core
-
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