*BSD News Article 27601


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!uunet!epiwrl.entropic.com!usenet
From: kenh@wrl.epi.com (Ken Hornstein)
Newsgroups: comp.os.386bsd.questions
Subject: Re: high-speed slip/ppp reliability
Date: 21 Feb 1994 11:07:43 -0500
Organization: Entropic Research Laboratory, Washington DC
Lines: 67
Message-ID: <2kam8f$q0h@sbus.entropic.com>
References: <1994Feb18.172307.17380@ticipa.pac.sc.ti.com> <MYCROFT.94Feb20112253@duality.gnu.ai.mit.edu>
Reply-To: kenh@wrl.epi.com
NNTP-Posting-Host: sbus.entropic.com

In article <MYCROFT.94Feb20112253@duality.gnu.ai.mit.edu>,
Charles Hannum <mycroft@duality.gnu.ai.mit.edu> wrote:
>In article <1994Feb18.172307.17380@ticipa.pac.sc.ti.com>
>rmfowler@landru.mtc.ti.com (Rex Fowler) writes:
>
>   Most of the documentation and comparisons I've seen between freebsd
>   and netbsd seem to agree that the serial throughput on freebsd is
>   more reliable than netbsd.  Is this still true in the *-current
>   trees?
>
>I'm not completely convinced that it has ever been true.  I regularly
>communicate with people running `high'-speed SLIP and PPP links with
>NetBSD (though admittedly I think all of these people use 16550A-based
>ports).  `high' == 38.4K and 57.6K CPU-to-modem, generally.

Here are my $0.02 cents, for what it's worth:

When I first started using NetBSD 0.9, I had tons of problems with the
com driver.  I couldn't run PPP or SLIP without the serial port hanging
completely (I was using a 16450 UART).  Even 9600 baud would cause this
problem.  So, I dug around in the com driver, and finally discovered that
some of the transmitter ready interrupts were being lost.  I developed a
crude fix, and now things wouldn't hang.  I NOW got tons of "silo overflow"
interrupts, especially during heavy CPU load.  Ok, that's to be expected;
I can live with that until I get some better hardware.

Then I tried out a port of sio I found on one of the NetBSD mailing lists.
I was quite surprised to discover that I could actually use PPP at higher
baud rates without dropping characters!  I noticed that when I was transferring
lots of serial data and compiling a program, then machine tended to drag; not
surprising, considering all the interrupts it was generating.

This weekend, I got a new machine, and with it I got a 16550A serial card.
I switched back to using the com drivers; no problems yet.

>That said, there are some small improvements that could be made to the
>com driver (in particular double buffering would help with FIFOless
>chips, though not as much as some people claim), but I have serious
>technical problems with sio.  It requires changes to the tty system
>that no other *BSD* tty driver of any sort (including here the drivers
>in the two 4.4 ports that were donated to us, and the various other
>NetBSD ports) has required and some of which are very suspicious, and
>in general it ignores standard interfaces for managing ttys and tty
>buffers.  Furthermore, obvious bogons like:
>
>#define setsofttty()    (ipending |= 1 << 4)     /* XXX */
>
>just don't settle well with me.
>
>I'm happy for anyone who finds sio useful, but I really cannot justify
>putting it in NetBSD.

I won't argue about the weird interface that sio uses; when I installed it,
I noticed that I had to make some unusual changes.  But ... the bottom line
is that it works a lot better than the com driver on FIFOless UARTs (saying
that the com driver works with FIFOless UARTs is being very generous).  And
with the other features of sio (like call-out devices) makes it so that
FreeBSD has a more useful serial driver, especially with 16450 UARTs.

I'm not sure that my experiences are relevant, of course; this is all with
0.9.  I understand that the com driver is being worked on, and perhaps all of
the above problems will go away in the next release.  Also, some nice call-out
patches to the com driver were posted to one of the mailing lists last month;
I'm using them, and so far I haven't had any problems.  I hope they will get
merged into the com driver for the next release.

--Ken