From: harp@netcom.com (Gregory O. Harp)
Subject: Re: High speed modems
Date: Sat, 26 Sep 92 06:15:15 GMT
Organization: Netcom - Online Communication Services  (408 241-9760 guest) 
Distribution: usa

furnish@ccwf.cc.utexas.edu (Geoffrey Furnish) writes:

>I would like to know about this too, if anyone has answers.  I called
>Gateway and they tell me the Telepath uses the "Dual 450" chip, not 
>a 16550.

They're probably referring to an ASIC of some type with a couple of
16450 clones on it.  You want a 16550A's if you get a choice.

>OS/2 does reliable serial comm up to 115 kilobaud.  I can do 19200 under
>OS/2 on a 386sx-16 with a 16450 WITHOUT _EVER_ LOSING A SINGLE CHAR.  It
>is b/c of one thing:  Hardware Handshaking.  Under OS/2 I tell OS/2 with
>the mode command that I want to use cts/rts handshaking.  Then I tell the
>modem, and that's all there is to it--I never drop a char.

Having never played with OS/2 I haven't tested the above.  Since you
say you were using a modem in the above, can you be sure you were
pulling a solid 19.2K?  Few if any modems actually achieve a constant
throughput of this speed.  Setting the DTE/DCE rate to 19.2K doesn't
count.  In fact, my DTE/DCE rate is always 38.4K no matter how fast my
modem is going across the phone line (because I like it that way ;) ).

In my opinion, the only really good way to test this is using a
null-modem connection and a constantly streaming transfer protcol like
ZModem.  Then you still need to transfer a few megs just to be sure (I
was transferring a 7MB file back and forth in my tests).

Anyway, I have tested Linux with 16450s.  On my 486DX running at 50Mhz
I can pull a reliable 38.4Kbps with my two serial ports null-modemed
together.  I can _almost_ pull 57.6Kbps but not quite (several
characters get dropped).  Of course, I'm having to handle twice the
interrupts of a normal transfer (since I'm sending and receiving on
the same machine).

Anyway, IMO, to realistically do anything over 38.4K on a Linux system
you need 16550A's.  Note that in my tests I was using one of the
fastest available PC's you can buy and I wasn't really running
anything else.  However, I have heard of people going faster on slower
PC's with 16550A's.  The FIFO really makes difference, since interrupt
handling is where you run into trouble.  Using a 16550A and reducing
the interrupt frequency to one 14th of what it would be when using a
16450 is a _very_ _significant_ reduction in the amount of work that
has to be done to maintain that data rate.

>Now I'm not going to say the _throughput_ is always that high.  That, after
>all, is the whole point of handshaking.  If the computer can't keep up
>for some reason, the flow is stemmed momentarily, etc.  But I can set the 
>modem for 19200, and never worry that I'm going to lose characters.

Right, but you're not actually pulling the throughput of 19.2K.

>I sure would like to be able to do this under Linux--and I know darn well
>it doesn't depend on having a 16550.  The FIFO buffer in the 16550 may help
>out a lot in terms of reducing interupt frequency, etc, I believe that,
>but I know it is possible to do reliable high speed comm if you use hardware
>handshaking.  OS/2 does it, therefore surely Linux could do it, no?

No. ;)

I'd really like to see OS/2 doing _real_ 115.2Kbaud I/O.  It sounds
like your tests were "cheating" by using RTS/CTS to slow down the
throughput.  If you're doing 115.2Kbps you should be transferring
11,520 bytes per second.  If not, you're not actually going that
fast...

>Anyone who actually knows about this matter under Linux, please speak up.  
>Tons of us out there would like to know the hard facts, not just more
>of this silly speculation which has been the majority of this thread so
>far.

IMVSO (In My Very Strong Opinion) the 16550A's FIFO is not only the
best solution, it may be the only one.  Hardware handshaking simply
reduces the data rate to a manageable level.  The FIFO allows the OS
to handle the higher data rates with no delays.

>Geoff Furnish
>furnish@dino.ph.utexas.edu

-- 
-----------------Greg-Harp----------------harp@netcom.com------------------
       "Wide mouths with narrow minds can't accept your difference.
     Open season on new ideas -- they call it bad influence." -- B52s
Newsgroups: comp.os.linux