Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Dec 1995 07:59:54 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, combssf@salem.ge.com, nate@rocky.sri.MT.net
Cc:        FreeBSD-hackers@FreeBSD.org
Subject:   Re: sio overruns on 2.0.5R
Message-ID:  <199512152059.HAA30345@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> > Er, flow control has no effect on silo overflows.
>> 
>> Really?  If a machine doesn't provide flow control can't you over-run
>> the buffers if the machine gets loaded down and the interrupt load gets
>> so bad that the sio interrupt handler isn't called enough.  However, if

>Unless the FreeBSD team responsible for the 'sio' driver has made ENORMOUS
>changes since the last time I looked at it (quite a while ago!?!),
>flow control DOES affect silo-overruns!  Flow-Control provides a throttle, 
>limiting the chances of a silo-overrun (not eliminating it, just limiting it).

See my other mail.  Flow nontrol not only doesn't affect silo overruns
if it is under software control (as it is for 8250-16550 chips), it
fundamentally can't affect it.  Except of course if input flow is always
disabled, or disabled while the system is too busy to receive data (e.g.,
while doing disk i/o or other serial i/o).  FreeBSD doesn't implement the
latter since it is rarely too busy to receive data.

>The modem/printer/mouse/other computer attached to the sio port MUST respect
>the STOP flow-control signal within a reasonable amount of time
>(a few, 2-4, character transmission times, usually) for flow-control to be
>effective, but, most modern pieces of equipment do.

Well, if the device attached uses a 16550 with its FIFO enabled, then it
can't stop in less than 16 character times without losing data.  Thus a
symmetrical connection between 16550s is almost guaranteed to overrun
the hardware input buffers at each end if the software is too busy to
read the buffers, while a 16550 transmitting to a 16450 is almost
guaranteed to overrun the hardware input buffers by a factor of 16 if
the software is too busy.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512152059.HAA30345>