*BSD News Article 40529


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!goanna.cs.rmit.edu.au!aggedor.rmit.EDU.AU!harbinger.cc.monash.edu.au!yarrina.connect.com.au!warrane.connect.com.au!godzilla.zeta.org.au!not-for-mail
From: bde@zeta.org.au (Bruce Evans)
Newsgroups: comp.os.386bsd.questions
Subject: Re: *BSD and 115kbps Serial
Date: 7 Jan 1995 14:17:18 +1100
Organization: Kralizec Dialup Unix Sydney - +61-2-837-1183, v.32bis v.42bis
Lines: 51
Message-ID: <3el13u$t4b@godzilla.zeta.org.au>
References: <3eegop$3r9@homer.alpha.net> <JBH.95Jan5100037@moses.oau.org>
NNTP-Posting-Host: localhost.zeta.org.au

In article <JBH.95Jan5100037@moses.oau.org>,
James B. Huber <jbh@moses.oau.org> wrote:
>>>>>> "Podyss" == Podyss  <Podyss@quaestus.com> writes:
>...
>Pod> So, the question is whether the machine running FreeBSD, assuming it has 
>Pod> a serial port with a 16550 UART, can really handle a full 115kbps serial link.
>...

FreeBSD can handle a full 115kbps bidirectional without silo overflows
on the following hardware:

	386/20
	one 16450 (not two)
	IDE drive

It can handle more ports on better hardware.  Some busmastering SCSI
controllers are not better because they hog the bus and expand the
interrupt latency from a few usec to a few hundred use.

Overheads:
/*
 * Results for serial overheads (in %).
 * All for a single line in raw mode at 115200 bps.
 * machine uart O/S              read  write  r+w    comments
 | 486/66 16550 FreeBSD-1.1R++    5.6   2.9   8.9    ++ = many changes
 |        16450 FreeBSD-1.1R++   15.0  12.5  27.3
 * 486/33 16550 FreeBSD-1.1B++    8.1   4.0  11.6
 |        16450 FreeBSD-1.1R++   21.8  17.4  36.0
 * 386/20 16450 FreeBSD-1.1B++   52.4  42.0  71.8
 */

2.0 has slightly larger overheads.  Overheads are approximately linear
in the number of lines until the system saturates.  Then the overheads
become smaller because more events per interrupt can be handled.  The
386/20 is saturated doing both input and output at 115200 bps.

>  Can't speak for FreeBSD, I run BSDI ver. 1.1 I've been complaining
>bitterly about how bad the serial performance is. It is NOT capable
>of running 38.4k with 16550's. It silo overflows all over the place,
>...
>  It still isn't up to 57.6k, it appears that the interrupt latency
>on the O/S is disgustingly high. Perhaps their version 2.0 will
>improve it, perhaps FreeBSD is better.

A 16450 at 115200 bps of course requires an interrupt latency of
somewhat less than 100000.0/11520.0 = 86.8 usec.  I changed the
interrupt handling in 386BSD-0.1-patchkit a couple of years ago
to make the latency lower than this on 386-20's.  On 486DX2/66's
the latency is 5-10 usec.
-- 
Bruce Evans  bde@zeta.org.au