On Wed, 18 Jun 2003, Glenn Dawson wrote: > I'm trying to get a Novatel Merlin for Ricochet working under -CURRENT. > http://www.novatelwireless.com/support/support_ricochet.html > ... > I've noticed (in the PPP logs and when sending AT commands directly) that > characters get dropped occasionally. I also found this document > http://homepages.nyu.edu/~gmp216/nrm6842/bigfastuart.html which explains > that the Merlin for Ricochet has a 576 byte buffer which, if full, will try > and flush itself on a single interrupt. Apparently under linux this is a > problem because the serial buffer is only 512 bytes and it overflows. Is > this also a problem in FreeBSD? > > I also get a lot of messages like this in /var/log/messages and on the console: > > Jun 16 23:31:16 foo kernel: sio4: 137 more interrupt-level buffer overflows > (total 821) > > That would seem to indicate that dumping 576 bytes on a single interrupt is > too much. yes? no? Probably. The buffer is dynamically sized depending on the line speed but is usually about 512 (min is 128). The scaling for this is easy to change (function siosetwater()). The buffer size is also a bit small given -current's broken interrupt latency, and is a lot too small if HZ is too large. This is only a problem if the modem has broken flow control to go with its wanting to dump its too-large buffer. For flow control to work, the sender has to stop sending before the reciever's buffers fill up, so it must have a granularity smaller than the receiver's buffer size (more precisely, the space above high water in the receiver's buffer). So non-broken flow control is especially important for senders with large buffers -- there are sure to be some receivers with smaller buffers. BruceReceived on Tue Jun 17 2003 - 22:38:14 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:12 UTC