Subject: Re: zstty fifo overrun
To: Gordon W. Ross <gwr@mc.com>
From: Chuck Silvers <chuq@chuq.com>
List: port-sparc
Date: 10/23/1997 18:24:45
I ran into this a couple years ago.
I originally had a sparc 1 and had all kinds of problems with
"fifo overrun"s at 38400 baud.  I put some instrumentation in
the zs driver to figure out what it was doing right before the
zs interrupts were processed, and it was usually the instruction
right after the splx() in the middle of tsleep().

I hacked up the interrupt level usage stuff to not use level 14
for the statclock (doubling up on level 10 instead), and changed
a number of splhigh()s to splstatclock() in various places
(6 in kern_synch.c and 2 in sys_generic.c) and the problem went away.
pk didn't like my fix tho, and I upgraded to an IPX and didn't
see the problem with an unpatched kernel anymore, so I let it drop.
later it started happening again on the IPX, but shortly after that
I got ISDN and a router, so again I didn't care.

I think some changes went in to address this same problem
on the i386 some time back, but I guess that didn't
solve things for the sparc.

I can post the diffs for my changes (based on -current of
over a year ago, unfortunately) if anyone's interested.

-Chuck


In message <199710232054.QAA29986@bach.mc.com>, "Gordon W. Ross" writes:
> > Date: Thu, 23 Oct 1997 13:42:45 -0400
> > From: Steven Grunza <steveng@formail.formation.com>
> 
> > Same here, except they were zs0b:  fifo overrun.  I had a 14.4 modem on
> > ttyb with RTS/CTS flow control.  The SPARC is a SPARCstation 1.
> 
> Oh...  I was confused.  When there is a problem with H/W flow control,
> (i.e. crtscts not turned on, or wrong cable wiring) then the message
> one will see is "ring overrun", not "fifo overrun" as I had thought.
> (Maybe "fifo overrun" should be "chip overrun" instead.)
> 
> The cause of "fifo overrun" message is excessive latency in servicing
> interrupts from the ZS chip.  The cause of that could be anywhere,
> i.e. interrupts disabled too long somewhere, or who knows what.
> What else was going on in the system at the time?
> 
> Lower baud rates will probably eliminate the "fifo overrun" problem.
> Have you tried that?  What is the highest rate that makes the fifo
> overrun errors become infrequent?
> 
> Gordon
>